【发布时间】:2010-06-23 14:00:13
【问题描述】:
NSArray* address = [NSArray arrayWithArray:[detailItem addressArray]];
NSLog(@"address = %@", address);
NSString* addressToString = @"";
int arrayCount = [address count];
for (int i = 0; i < arrayCount; i++) {
addressToString = [addressToString stringByAppendingString:[address objectAtIndex:i]];
if (i == arrayCount -1) {
addressToString = [addressToString stringByAppendingString:@""];
} else {
addressToString = [addressToString stringByAppendingString:@", "];
}
}
address 是一个保存地址的 NSArray
2010-06-23 09:05:19.346 iPhoneExample[1093:207] address = (
{
City = "Cupertino";
Country = "United States";
CountryCode = us;
State = CA;
Street = "1 Infinite Loop";
ZIP = 95014;
}
)
我正在尝试遍历数组并创建一个 CSV 字符串,使其看起来像
Cupertino, "United States", us, CA, "1 Infinite Loop", 95014
但是,我一直在崩溃
addressToString = [addressToString stringByAppendingString:@", "];
我收到的消息是
*** -[NSCFDictionary stringByAppendingString:]:无法识别的选择器发送到实例 0x1c2f10更新: detailItem 是 ABContact 类型的对象(自定义类)。
ABContact 有一个名为 addressArray 的属性
@property (nonatomic, readonly) NSArray *addressArray;我的addressArray的定义是
- (NSArray *) addressArray {return [self arrayForProperty:kABPersonAddressProperty];}【问题讨论】:
-
错误信息是自描述的——地址对象不是一个数组——它是一个字典,你应该相应地处理它。
-
我的类从 ABContact 类返回一个 NSArray 怎么样?
标签: cocoa iphone-sdk-3.0 nsstring nsarray appkit