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(非アトミック、読み取り専用)NSArray * addressArray;
私のaddressArrayの定義は
-(NSArray *)addressArray {return [self arrayForProperty:kABPersonAddressProperty];}