有两个类,我们称它们为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对象。

08-05 21:50