所以我在 A 类中创建和填充一个数组 - 然后在 BI 类中调用 A 类的方法来获取数组
类A.h
-(NSMutableArray*)getArray
类A.m
-(NSMutableArray* )getFeedsArray
{
NSMutableArray *myArray;
if (!myArray)
{
myArray = [[NSMutableArray alloc]init];
[myArray addObject: @"hello"];
}
NSLog (@"Feeds array: %d", [myArray count ]);
return myArray;
}
}
然后在 B 类 - 我这样做:
B类.m
-(void)loadData
{
ClassA *classA = [[ClassA alloc]init];
NSMutableArray *mutableArray = [classA getFeedsArray];
NSLog (@"Items in Array: %d", [mutableArray count]);
}
以上工作完美 - 数组计数显示 1,这是测试应该做的。
但是,当我这样做时:
在课堂上
-(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 方法。馈送数组:1 数组中的项目:1(在 ClassB.m 内)
如果我然后像这样更改代码:
-(NSMutableArray* )getFeedsArray
{
NSLog (@"Feeds array: %d", [feedsDownload count ]);
return feedsDownload;
}
结果:Feeds 数组:1(来自 ClassA.m otherMethod)- otherMethod 调用 getFeedsArray 方法。馈送数组:0 数组中的项目:0(在 ClassB.m 内)
因此,似乎第二次调用 getFeedsArray 使我的数组计数为零。
抱歉,WTH 正在这里发生,我错过了什么?
谢谢!