[抱歉我的英语不好]
如果我创建一些字符串的NSArray (作为对象的成员字段 - 没有属性没有合成),
并在-viewdidLoad中用一些字符串
初始化它names = [NSArray arrayWithObjects:@“jeden”,@“dwa”,@“trzy”,nil];
并立即(也在-viewDidLoad中)将使用它,没关系。
但是当我稍后尝试使用它及其数据时,在按钮事件处理程序中, 它表明该数组数据已损坏(即使在[名称计数]上崩溃;)
它表明我需要添加属性并合成并通过self.names使用它 然后它似乎有效...但对我来说这让我感到困惑和伤心,因为我做到了 不知道使用该成员的第一种方式是什么原因(没有自我。没有财产 并合成)不工作
任何人都可以解释,
TIA,fir
答案 0 :(得分:1)
names = [NSArray arrayWithObjects: @"jeden", @"dwa", @"trzy", nil];
对该对象进行自动释放引用,您需要(两者都将保留计数增加1):
保留对象,我的意思是:
names = [[NSArray arrayWithObjects:@“jeden”,@“dwa”,@“trzy”,nil] retain];
或使用它们的新分配,我更喜欢这种方法:
names = [[NSArray alloc] initWithObjects:@“jeden”,@“dwa”,@“trzy”,nil];
然后在dealloc部分中不要忘记释放它,以避免内存泄漏。
干杯!
答案 1 :(得分:0)
您应该正确初始化它以正确保留它:
names = [[NSArray alloc] initWithObjects:@"jeden", @"dwa", @"trzy", nil];