所以我在A类中创建和填充数组 - 然后在B类中我调用A类的方法来获取数组
ClassA.h
-(NSMutableArray*)getArray
ClassA.m
-(NSMutableArray* )getFeedsArray
{
NSMutableArray *myArray;
if (!myArray)
{
myArray = [[NSMutableArray alloc]init];
[myArray addObject: @"hello"];
}
NSLog (@"Feeds array: %d", [myArray count ]);
return myArray;
}
}
然后在B组 - 我这样做:
ClassB.m
-(void)loadData
{
ClassA *classA = [[ClassA alloc]init];
NSMutableArray *mutableArray = [classA getFeedsArray];
NSLog (@"Items in Array: %d", [mutableArray count]);
}
以上工作完美 - 数组计数显示1,这是测试应该做的。
然而,当我这样做时:
classA.m 中的
-(NSMutableArray* )getFeedsArray
{
NSLog (@"Feeds array: %d", [feedsDownload count ]);
return feedsDownload;
}
计数为零。
所以我在ClassA.m中的另一个方法中检查了feedDownload数组,该方法在getFeedsArray方法之前被调用,并且从该方法返回正确的值。
但是,当从ClassB.m调用getFeedsArray时 - 数组计数为零。但是对于getFeedsArray代码的第二个版本,它只有零:
所以如果我这样做并且不接触任何其他代码:
-(NSMutableArray* )getFeedsArray
{
NSMutableArray *myArray;
if (!myArray)
{
myArray = [[NSMutableArray alloc]init];
[myArray addObject: @"hello"];
}
NSLog (@"Feeds array: %d", [myArray count ]);
return myArray;
}
结果: Feeds数组:1(来自ClassA.m otherMethod) - otherMethod调用getFeedsArray方法。 Feed数组:1 数组中的项目:1(在ClassB.m内)
如果我然后更改代码:
-(NSMutableArray* )getFeedsArray
{
NSLog (@"Feeds array: %d", [feedsDownload count ]);
return feedsDownload;
}
结果: Feeds数组:1(来自ClassA.m otherMethod) - otherMethod调用getFeedsArray方法。 Feed数组:0 数组中的项目:0(在ClassB.m内)
所以似乎对getFeedsArray的第二次调用给了我数组的零计数。
抱歉,但WTH正在这里发生,我错过了什么?
谢谢!