アドレス帳の連絡先から Twitter ユーザー名を取得しようとしていますが、取得できません。
「グーグル」で見つけたこのコードを使用しています:
- (NSString*)getTwitterUsernameFromRecord:(ABRecordRef)record {
NSString * twitterUsername = nil;
ABMultiValueRef socials = ABRecordCopyValue(record, kABPersonSocialProfileProperty);
if (!socials) {
return nil;
}
CFIndex socialsCount = ABMultiValueGetCount(socials);
for (int k=0 ; k<socialsCount ; k++) {
CFDictionaryRef socialValue = ABMultiValueCopyValueAtIndex(socials, k);
if(CFStringCompare( CFDictionaryGetValue(socialValue, kABPersonSocialProfileServiceKey), kABPersonSocialProfileServiceTwitter, 0)==kCFCompareEqualTo) {
twitterUsername = (NSString*) CFDictionaryGetValue(socialValue, kABPersonSocialProfileUsernameKey);
}
CFRelease(socialValue);
if(twitterUsername)
break;
}
CFRelease(socials);
return twitterUsername;
}
「socials」配列カウントを取得しようとしたときに例外が発生したため、「socials」配列が nil であることを検証する if を入れました。
このコードをシミュレーターと実際のデバイスで試してみましたが、Twitter 情報が入力されている連絡先がありますが、取得する「ソーシャル」配列は常に nil です。レコードから間違ったプロパティを取得していますか? 何か助けはありますか?
前もって感謝します