我的应用程序中有一个IBOutlet NSLayoutConstraint.非常简单:

@property (nonatomic, weak) IBOutlet NSLayoutConstraint* leftConstraint;

在某个时刻,我想停用此约束:

self.leftConstraint.active = NO;

它发生在一个名为from cellForRowAtIndexPath:的方法中.在上面一行之后,约束变为零.然而,如果我将这个属性声明为strong,那么它就可以了,它不会变成零.有人能解释为什么会这样吗?

推荐答案

当插座为weak时,唯一的strong参考来自视图的constraints属性.停用约束会将其从该数组中移除,因此不再有强引用.

Objective-c相关问答推荐

UITextField secureTextEntry 带有自定义字体的项目符号?

从 C# 到 Objective C 会有多大的飞跃

为什么在目标 c 的静态上下文中允许 self

在 Interface Builder 中设计 UITableView 的section header

UIRefreshControl iOS 6 xcode

将 CFDictionaryRef 转换为 NSDictionary?

如何连续关闭 2 个模态视图控制器?

`-fembed-bitcode` 和 BITCODE_GENERATION_MODE 有什么区别?

Objective C 静态类变量

UITableView 滚动事件

我应该在 ARC 的 init 方法中引用 self.property 吗?

在 Objective C 中使用 extern

在 Objective C 中,你能判断一个对象是否具有特定的属性或消息吗?

从 NSRange 创建 UITextRange

如何将 nil 添加到 nsmutablearray?

UIDatePicker 中的最小和最大日期

如何在 iOS 中计算 SHA-2(最好是 SHA 256 或 SHA 512)哈希?

在 Objective-C 中计算两个日期之间的天数

Apple 说 NSManagedObjectContext 归创建它的线程或队列所有时是什么意思?

ld:找不到文件:链接器命令失败,退出代码为 1