在类之间传递数组 - 奇怪的错误?

时间:2013-10-08 11:58:49

标签: iphone ios objective-c

所以我在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正在这里发生,我错过了什么?

谢谢!

0 个答案:

没有答案