0

我尝试将一些地图信息存储到 aNSMutableArray但它不起作用。我认为只有一个小问题我找不到。

在 .h 文件中:

@property (retain, nonatomic) NSMutableArray *annotationArray;

在 .m 文件:

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

我做错了什么?

4

4 回答 4

3

看来您可能忘记了初始化数组。在尝试向其中添加对象之前尝试添加以下行:

[self setAnnotationArray:[[NSMutableArray alloc] init]];
于 2013-04-15T11:58:32.023 回答
1

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

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

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

您也可以使用[self setAnnotationArray:[[NSMutableArray alloc] init]]而不是_annotationArray,但这取决于您的综合声明。

我建议你不要只在你的函数中初始化它而不检查它是否已经被首先设置,因为当你的代码变得更复杂时,你会冒着覆盖其他东西的风险。

于 2013-04-15T11:57:31.913 回答
0

我想你错过了这个:

_annotationArray=[[NSMutableArray alloc]init];
于 2013-04-15T11:56:56.397 回答
0

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

@synthesize annotationArray=_annotationArray;

- (void)loadView 
{
self. annotationArray =[NSMutableArray array];
}
于 2013-04-15T12:10:47.900 回答