更新:我在A中找到了我的copyWithZone方法中的错误。谢谢大家。插入到可变数组时如何保留这个对象?
更新:抱歉,我确实声明了@properties,我认为这很明显,所以我在OP中跳过了它们。对于那个很抱歉。
崩溃消息是:objA在尝试访问str时释放(僵尸)内存。
我的数据结构是这样的:
@class A
{
NSString *str;
}
@property (retain) NSString *str; // str synthesized in .m
@class B
{
A *objA;
}
@property (copy) A *objA; // objA synthesized in .m
我所试图做的是:
B *newB = [[B alloc] init];
[someMutableArray addObject: newB];
不过,我会崩溃有时当我试图像这样访问:
B *myB = [someMutableArray objectAtIndex: index];
someLabel.text = myB.objA.str;
将B插入数组时,我猜objA & objA.str未被保留。但我不知道如何确保他们正在接受再培训。
任何帮助理解
-Leo
你可以发布代码创建A的实例吗? – 2011-05-23 07:50:35
B类和A类的init方法是否定义良好?你能粘贴崩溃日志吗? – 2011-05-23 07:51:00