我有一个关于通过不同类获取值的基本问题。 我有一个填充数组的classA(如果我打印出来它不是空的)。 我希望加载这个数组 LATER 我想要加载这个数组:我从类A调用一个返回类A的数组的函数。但是在类B中如果我调用我的新数组则为空。 我有点困惑,因为我认为我保留了数组的每个值,但它仍然是空的。我也尝试了很多不同的可能性。我认为它产生了一个基本的OOP语法错误?!
// CLASS_A.h
@interface classA {
NSMutableArray* buoyArray;
}
@property (nonatomic, retain) NSMutableArray * buoyArray;
-(NSMutableArray*)getArray:(NSMutableArray*)_array;
// CLASS_A.m
...
-(NSMutableArray*)getArray:(NSMutableArray*)_array {
_array=buoyArray;
return _array;
}
// CLASS_B.h
#import "CLASS_A.h"
@class classA;
@interface classB ...
classA *mapSource;
NSMutableArray * buoyArray;
}
@property(nonatomic,retain) classA *mapSource;
// CLASS_B.m
buoyArray=[mapSource getArray:buoyArray];
NSLog(@"%@",buoyArray);
答案 0 :(得分:1)
实际上你是通过调用alloc来创建类A的新对象,所以通过init它可以重新枚举该实例的所有属性值。
你需要什么,如果你在A类上推动B类,那么使用这一行从堆栈中获取现有的A类对象。
mapSource = (ClassA *)[self.navigationController.viewControllers objectAtIndex: [self.navigationController.viewControllers count]-2];
然后调用此
buoyArray=[mapSource getArray:buoyArray];
NSLog(@"%@",buoyArray);