addobject to array not working

时间:2013-04-15 11:55:00

标签: ios objective-c arrays

我尝试将一些地图信息存储到NSMutableArray中,但它无效。我认为只有一个我找不到的小问题。

在.h档案:

@property (retain, nonatomic) NSMutableArray *annotationArray;

at .m文件:

    MapPoint *placeObject = [[MapPoint alloc] initWithName:title subtitle:subtitle coordinate:loc];
    [annotationArray addObject:placeObject];
    NSLog(@" count: %lu", (unsigned long)[annotationArray count]); // always "0"

我错了什么?

4 个答案:

答案 0 :(得分:3)

您似乎忘记了初始化阵列。尝试在向对象添加对象之前添加以下行:

[self setAnnotationArray:[[NSMutableArray alloc] init]];

答案 1 :(得分:1)

我需要查看更多代码,但我认为最有可能的是你没有设置annotationArray。你在哪里写_annotationArray = [[NSMutableArray alloc] init]吗?

如果没有,它的位置是类init方法,或者您可以在函数中写入:

if (annotationArray == nil) {
_annotationArray = [[NSMutableArray alloc] init]
}

您也可以使用[self setAnnotationArray:[[NSMutableArray alloc] init]]代替_annotationArray,但这取决于您的综合语句。

我建议您不要只是在函数中初始化它,而不检查它是否已经先设置好,因为当代码变得更复杂时,您可能会面临覆盖其他内容的风险。

答案 2 :(得分:0)

我想你错过了这个:

_annotationArray=[[NSMutableArray alloc]init];

答案 3 :(得分:0)

at .m文件:在标题后添加

@synthesize annotationArray=_annotationArray;

- (void)loadView 
{
self. annotationArray =[NSMutableArray array];
}