【发布时间】:2012-02-19 22:19:17
【问题描述】:
所以这很奇怪。
我有一个财产:
@property (weak, nonatomic) Something *something; // .h
@synthesize something=_something // .m
由于某种原因,设置该属性不会保持_something 的设置。
我什至写了一个setter:
- (void)setSomething:(Something *)something {
_something = something;
}
传递的something 是对象的有效实例。但是,在遍历_something = something 行之后,_something 为 nil,something 仍然是一个有效对象。
这让我发疯了,因为在我看来一切都是正确的。类似的东西我已经写了一千遍了。唯一的新功能是它在 Xcode 4.3 中。
任何帮助将不胜感激。谢谢!
ETA:所以,也许这是一个暗示? viewDidLoad 被称为一个完整的时间,每批 4 个。我正在使用情节提要,因此视图会自动正确设置。也许视图控制器没有正确加载或初始化或什么?我已经设置好了课程,一切看起来应该可以正常工作,但事实并非如此。
【问题讨论】:
-
从 Xcode 4.2 开始,您不需要在接口中定义 _something。它是自动完成的。
-
您是否在检查作业后立即尝试将
_something发送到NSLog?这将有助于在实际问题和调试器问题之间做出决定。 -
我做到了。是零。这就是让我发疯的原因。
-
我知道这可能无法解决问题,但请尝试将传递给 setter 的参数重命名为
somethingVal,如下所示:- (void)setSomething:(Something *)somethingVal {_something=somethingVal;}
标签: objective-c ios xcode properties xcode4.3