我正在尝试使用带有以下代码行的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个对象)仍然是一个好主意。