【发布时间】:2012-07-24 20:45:40
【问题描述】:
这是一个我似乎无法解决的奇怪问题。
在我的应用程序中,我将 tableviewcontroller 用于自定义对象数组(带有字符串标题),在 showDetailsForIndexPath 方法中,我将对象的字符串值分配给我称为 selectedString 的类变量。这是合成的(仅使用非原子),并且在上述方法中成功设置了值。当涉及到同一个类中名为 PrepareForSegue 的另一个方法时, selectedString 现在为空。我在这里错过了什么?
这是我在头文件中声明的方式(只是提取,这不是头文件的样子)
NSString *chosenString;
@property (nonatomic) NSString *chosenString;
我假设 * 表示它正在启动,所以不需要在源文件中这样做?
【问题讨论】:
-
*从什么时候开始表示对象是自动初始化的?请有人给我那个版本的objc。 -
我是,理查德。我很抱歉,这只是一个快速的想法,因为我被难住了。
-
我认为你的变量的范围可能是关闭的,并且在你初始化和设置它的方法之后它变成 null 的原因是它被释放了,我认为这是 Richard 的目标.我还没有对 ARC 有最大的了解,但请尝试将您的属性声明更改为 (nonatomic, weak) 或 strong。我认为它可能默认为弱,这可能是你的问题?只是我会玩的东西,如果我说的不正确,请随时纠正我。
-
抱歉发了两次帖子,但你是如何设置标题的?您是否验证过数组中确实存在值,并且它们具有正确的值?也许是他们提前发布了。
-
@KarolyS 否,如果属性是 ARC 中的对象,则默认为
strong,如果不是对象,则默认为assign。
标签: ios nsstring null tableview