有两个类,我们称它们为A类和B类。
另外,在类B中,有一个称为arrayB的NSMutableArray。
@interface A {
// for reference functions in B
B *obj;
}
@property (assign) B *obj;
- (void) addObject: (id) objectB;
然后我通过调用B来访问B:
obj = [[B alloc] init];
这是B的定义:
@interface B {
NSMutableArray *arrayB;
}
@property (assign) NSMutableArray *arrayB;
- (void) printArray;
现在,我尝试通过A的功能将对象添加到arrayB:
[self addObject: objectB]
- (void) addObject: (id) objectB {
[obj.arrayB addObject:objectB];
NSLog(@"%@", obj.arrayB);
// here prints arrayB with objectB
}
但是,当我尝试再次访问B中的对象时:
[self.obj printArray];
- (void) printArray {
NSLog(@"%@", arrayB);
// now it prints an empty array
}
我不知道这里发生了什么...
对象将由NSMutableArray的addObject自动保留,不是吗?
为什么每次都变空? > _ <
请帮助我,谢谢!
最佳答案
仅凭很小的,无上下文的代码片段很难分辨出错误所在。但是最有可能的是您正在创建两个不同的B对象。