我正在尝试使用带有以下代码行的mapkit填充Title和Subtitle。
textItems数组包含两个字符串。

NSArray *textItems = [searchString componentsSeparatedByString:@","];

addAnnotation =
 [[AddressAnnotation alloc] initWithCoordinate:location
                                        mTitle:[[textItems objectAtIndex:0] stringValue]
                                     mSubTitle:[[textItems objectAtIndex:1] stringValue]];


应用程序到达“ addAnnotation”时停止。

如果我将mTitle:[[textItems objectAtIndex:0] stringValue]更改为mTitle:@"test",即工作正常。调试时,我可以看到存在textItems数组中的数据。

有任何想法吗?

谢谢。

最佳答案

componentsSeparatedByString方法返回一个NSString对象的数组。

您正在这些对象上调用stringValue,但是stringValue适用于NSNumber对象,而不是NSString,因此您肯定会遇到“无法识别的选择器”错误。

删除对stringValue的呼叫:

addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:location
    mTitle:[textItems objectAtIndex:0]
    mSubTitle:[textItems objectAtIndex:1]];


但是,在访问数组中的那些索引之前检查计数并使用默认值(如果数组仅返回0或1个对象)仍然是一个好主意。

07-24 09:21