我尝试将一些地图信息存储到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"
我错了什么?
答案 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];
}