这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:ShouldIBOutletsbestrongorweakunderARC?我简要地阅读了有关ARC的内容,并认为好吧,一切都很强大,委托(delegate)很弱。现在我在界面生成器中创建一个View并制作IBOutlets,Xcode的默认设置设置为弱。这个建议似乎是有原因的,大多数IBOutlets想要weak属性是有原因的吗?那是因为这些View(IBOutlets)已经被保留,因为它们附加到它的父View吗?我们很少替换IBOutletView?但我认为将其设置为strong并没有什么坏处,这有什么问
我知道这里的第二个按钮显示助理编辑器:而且我知道如何通过从InterfaceBuilder中的对象拖动到ViewController代码来创建Outlet和Action。理想情况下,它应该像documentation一样简单。让它看起来:但这通常是当我按下“助手”编辑器时Xcode对我来说实际看起来的样子:一团糟。我必须尽量减少很多事情,尝试让Storyboard对象出现在View中,然后找到合适的ViewController。在我可以进行Control-drag操作之前完成所有这些操作。有没有办法不使用辅助编辑器就可以建立连接?(而且最好不必自己输入大量代码。)
我最近开始使用Storyboard为我的iPad应用程序创建一个iPhone界面,我已经将项目更改为Universal而不是iPad,并在项目摘要屏幕中将所需的Storyboard分配给它的设备。但是当我尝试使用control+drag将任何元素连接到一段代码时,例如:@property(strong,nonatomic)IBOutletUIImageView*logo;它只是不能链接它。该对象与代码所说的类型相同,与View相同是同一类继承。iPadStoryboard仍然运行良好并且可以增强,它仍然与项目相关联。新的iPhoneStoryboard完全没用,这是为什么?
我正在创建一个带有自定义UITableViewCell原型(prototype)的UITable。我的单元格包含UIImageViews、UILabels和UIButtons。当我控制并从我的按钮拖动到我的类(class)界面时,它工作得很好。但是,它不适用于网点。当我在.h文件中创建IBOutlet时,如果我选择UITable而不是单元格,我只能连接,当然结果是一个损坏的应用程序。你们知道如何解决这个问题吗?我不想只为单元格使用自定义类。我真的很想坚持使用Storyboard和原型(prototype)。提前致谢 最佳答案 将标签
我们为一个变量创建属性,以便在其他View中使用它。我们为IBOutlets做同样的事情。但并不总是为了使用它们。是否有必要为我们刚刚创建的每个IBOutlet创建属性?还是这样做只是一种好的做法? 最佳答案 我喜欢看它是否易于内存管理和外部访问。如果你需要从外部访问它,显然要创建一个属性。(是的轻松内存管理,如果它很容易你就不会把它搞砸,如果你不把它搞砸它以后就不会成为一个错误)80%的时间我的ViewController有IBOutlets并且没有其他人访问它们,因此ivars工作。问题是当你不使用@property时,分配的值
当我将IBOutlet连接到UITextField时,我遇到了这个奇怪的错误。这真的很奇怪,因为它只发生在这个单一的ViewController中。我有另外两个几乎与这个相同的ViewController,它们运行完美。我的Storyboard中有一个TableViewController。它有2个分组部分,每个部分都有静态单元格。每个单元格中都有一个UITextField。现在,如果我只是在不将文本字段连接到我的类的情况下运行它,则该View可以正常加载。但是,当我连接它们时,View一加载-应用程序崩溃并出现此错误,每个文本字段一个:[UITextFieldstringByTrim
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:ShouldIBOutletsbestrongorweakunderARC?在文档中,我读到“socket通常应该很弱,除了从文件所有者到nib文件(或在iOS中,Storyboard场景)中的顶级对象的socket应该很强。”例子?我不明白什么时候最好为IBOutlet使用“弱”而不是“强”属性。
使用iOS8和Xcode6。我使用Storyboard将UIWebView嵌入到Controller中,并将所有内容连接起来。但是,当我运行它时,webView显示为零。有什么想法吗? 最佳答案 对我有帮助的是thisanswer#1here.清理项目关闭XCode删除~/Library/Developer/Xcode/DerivedData/的所有内容重启MacO完全按照这个顺序。 关于iOS:Xcode6中的IBOutlet为零,我们在StackOverflow上找到一个类似的问题:
我最近在这里和其他网站上阅读了很多关于IBOutlets应该强还是弱的文章。官方判定它们应该是弱的,除非它们引用顶级xib对象。这很好。然而,我还不清楚为什么将它们设置为强或弱实际上会对应用程序的内存管理产生影响。特别是从iOS6开始,viewDidUnload不再在收到内存警告时调用,因此从这个意义上说,为IBOutlets选择弱或强不会有任何区别。虽然对于不再位于导航堆栈中的ViewController(即在它们被加载然后弹出之后),我认为任何声明为弱的IBOutlets都将被释放,但我的想法是否正确?感谢您的任何见解! 最佳答案
我在nib文件中有两个UIView,我使用IBOutlet和weak关键字将它们设置为我的ViewController的属性。但是,当我第一次使用self.view1来指向Nib中的View时,它起作用了。但是当我稍后使用它时,这两个属性变成了nil。使用strong属性可以解决这个问题。但我总是对IBOutlet属性使用weak。为什么在这种情况下它变成了零? 最佳答案 您需要对nib文件中的顶级项目有一个strong引用。如果你的nib的顶层有两个View,那么你应该有对它们的strong引用,而不是weak。这些顶级View的