程序设计

专业和发烧友程序员的问答

1
以编程方式执行Segue并将参数传递到目标视图
在我的应用中,我有一个按钮,可以通过编程方式执行segue: - (void)myButtonMethod { //execute segue programmatically [self performSegueWithIdentifier: @"MySegue" sender: self]; } 我想知道是否有一种方法可以引用目标视图并将其传递一些参数。 我知道在prepareForSegue方法中,我可以用:来引用它myDestinationViewController *vc = [segue destinationViewController];,但是我不知道如何以编程方式执行segue。 你有什么想法? 谢谢,yassa 更新: 我很抱歉这个问题!!!我只是发现,即使以编程prepareForSegue方式调用segue,该方法还是会被调用,因此有可能以相同的常用方式传递参数。

1
在Emacs中使用su / sudo打开文件
假设我想使用su或在现有Emacs会话中打开文件sudo,而无需下拉至shell并执行sudoedit或sudo emacs。一种方法是 C-x C-f /sudo::/path/to/file 但这需要通过SSH进行昂贵的往返。有没有更直接的方法? [编辑] @JBB是正确的。我希望能够调用su/ sudo保存以及打开。保存时重新授权是可以的(但不理想)。我正在寻找的是变化find-file,并save-buffer认为可以通过“管道” su/ sudo。

1
什么是DOCTYPE?
什么是DOCTYPE?为什么要使用它? 我可以使用哪些不同的DOCTYPE? 标准和怪癖模式之间有什么区别,对于不同设置的DOCTYPE,我可能会遇到哪些怪癖? 最后,我应该使用什么适当的DOCTYPE?
174 html  xhtml  doctype  dtd 

13
解决Objective-C名称空间冲突的最佳方法是什么?
Objective-C没有名称空间;与C非常相似,所有内容都位于一个全局名称空间内。常见的做法是在类的前面加上缩写,例如,如果您在IBM工作,则可以给它们加上“ IBM”作为前缀。如果您为Microsoft工作,则可以使用“ MS”;等等。有时,缩写是指项目,例如Adium在类的前面加上“ AI”(因为后面没有公司可以使用缩写)。苹果为类添加NS前缀,并说该前缀仅保留给苹果。 到目前为止一切顺利。但是在类名前面附加2到4个字母是一个非常非常有限的名称空间。例如,MS或AI可能具有完全不同的含义(例如AI可能是人工智能),并且其他一些开发人员可能决定使用它们并创建一个同名的类。Bang,名称空间冲突。 好的,如果这是您自己的类之一与所使用的外部框架之间的冲突,则可以轻松更改类的命名,没什么大不了的。但是,如果您使用两个外部框架,这两个框架都没有来源并且您不能更改,那该怎么办?您的应用程序与它们两者都链接,您会遇到名称冲突。您将如何解决这些问题?以一种仍然可以同时使用两个类的方式来解决它们的最佳方法是什么? 在C语言中,您可以通过不直接链接到库来解决这些问题,而是在运行时使用dlopen()加载库,然后使用dlsym()找到要查找的符号并将其分配给全局符号(即可以以您喜欢的任何方式命名),然后通过此全局符号进行访问。例如,如果由于某些C库具有名为open()的函数而发生冲突,则可以定义一个名为myOpen的变量,并将其指向该库的open()函数,因此当您要使用系统open()时,您只需使用open(),当您要使用另一个时,可以通过myOpen标识符进行访问。 在Objective-C中是否可能有类似的事情,如果没有,是否可以使用其他聪明,棘手的解决方案来解决命名空间冲突?有任何想法吗? 更新: 只是为了澄清这一点:当然欢迎提出建议如何避免名称空间冲突或如何创建更好的名称空间的答案;但是,我不会接受他们作为答案,因为他们不能解决我的问题。我有两个库,它们的类名冲突。我不能改变他们。我没有任何一个的来源。碰撞已经存在,而有关如何提前避免的提示将不再有用。我可以将它们转发给这些框架的开发人员,并希望他们将来选择更好的名称空间,但是目前我正在寻找一种解决方案,以在单个应用程序中立即使用这些框架。有什么解决办法可以做到这一点?


5
检查Rails中是否存在表
我有一个rake任务,除非存在一个表,否则该任务将无法工作。我正在与一个网站上的20多位工程师合作,因此我想确保他们已经迁移了表,然后他们才能执行瑞克任务,该任务将填充相应的表。 AR是否有诸如此类的方法Table.exists?如何确保他们已成功迁移表?

6
使用C#扩展方法重载运算符
我正在尝试使用扩展方法将操作员重载添加到C#StringBuilder类。具体来说,StringBuilder sb我想sb += "text"等同于sb.Append("text")。 这是为创建扩展方法的语法StringBuilder: public static class sbExtensions { public static StringBuilder blah(this StringBuilder sb) { return sb; } } 成功将blah扩展方法添加到中StringBuilder。 不幸的是,操作符重载似乎不起作用: public static class sbExtensions { public static StringBuilder operator +(this StringBuilder sb, string s) { return sb.Append(s); } } 除其他问题外,this此上下文中不允许使用关键字。 通过扩展方法可以添加运算符重载吗?如果是这样,解决该问题的正确方法是什么?

3
Web Worker的用例是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 我正在寻找使用Web Workers API的真实场景。

30
PHP的隐藏功能?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊不清,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 9年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它当前不接受新的答案或互动。 我知道这听起来像是一个尖锐的问题,但让我解释一下我来自哪里。 大学毕业后,我在一家PHP商店找到了一份工作。我在那里工作了一年半,以为我已经学到了学习编程的全部知识。 然后,我在一家规模相当大的公司担任单人内部开发商店的工作,所有工作都在C#中进行。在担任这个职位时,我开始阅读大量的博客和书籍,并很快意识到我以为自己了解所有知识是多么错误。我了解了单元测试,依赖项注入和装饰器模式,松散耦合的设计原理,关于继承的讨论等等,而且我一再地学习这些知识。不用说,我的编程风格在去年完全改变了。 现在,我发现自己接了一个php项目,为朋友的启动做一些编码,与C#编程相比,我感到完全受了限制。确实让我感到困扰的是,必须通过附加'$ this->'来引用类范围内的所有变量。令我烦恼的是,我尝试过的所有IDE都没有很好的智能感知能力,而且我的SimpleTest单元测试方法必须以单词“ test”开头。动态类型使我无法隐式指定方法期望的参数类型,而必须编写switch语句来执行方法重载,这使我感到疯狂。我不能忍受不能有嵌套的名称空间,而必须使用::运算符来调用基类的构造函数。 现在,我无意开始进行PHP与C#的辩论,而是要确定我确信有些PHP功能我不知道或无法正确使用。我陷入C#宇宙中,无法在玻璃碗外面看。 所以我问,您最喜欢PHP的哪些功能?在.Net语言中,您可以做哪些事情,这些事情您做不到或很难做?





5
在没有预处理器宏的情况下,是否有一种方法可以在Xcode项目的项目级别上定义实用的方案特定标志
在快速介绍之前,我将为Alpha,Beta和发行版构建定义一套方案。这些方案中的每一个都有一组宏,这些宏被定义为在项目级别上控制某些行为。最简单的示例是DEBUG = 1宏,默认情况下,该宏是针对运行构建的默认方案中的所有Xcode项目定义的。可以查询#ifdef DEBUG ...并相应地在代码中做出决定,甚至可以编译出不必要的代码。 似乎这种类型的配置门控使用swift并不容易,因为不支持宏。有人可以建议一种类似的方法吗,我不在乎代码本身是否已编译出来。不过,我想根据构建方案来选择功能。
174 ios  swift 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.