Xcode CFArrayGetValueAtIndex赢得';我得不到社交资料

Xcode CFArrayGetValueAtIndex赢得';我得不到社交资料,xcode,ios5,ios6,addressbook,Xcode,Ios5,Ios6,Addressbook,如果我尝试的话,我无法在CFArrayGetValueAtIndex上获得社交档案信息(twitter、facebook)。所有其他信息,如姓名、号码、www,我都知道了。我已经创建了一个带有个人创建vCard Representation with People的vCard,如果我尝试输出,我会得到如下信息: BEGIN:VCARD VERSION:3.0 PRODID:-//Apple Inc.//iOS 10.7.5//EN N:lastname;Firstname;;; FN:First

如果我尝试的话,我无法在CFArrayGetValueAtIndex上获得社交档案信息(twitter、facebook)。所有其他信息,如姓名、号码、www,我都知道了。我已经创建了一个带有个人创建vCard Representation with People的vCard,如果我尝试输出,我会得到如下信息:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iOS 10.7.5//EN
N:lastname;Firstname;;;
FN:Firstname lastname
ORG:company;
TITLE:Jobtitle
item1.EMAIL;type=INTERNET;type=pref:my@mail.com
item1.X-ABLabel:Global
TEL;type=IPHONE;type=CELL;type=VOICE;type=pref:049651651561
item2.URL;type=pref:Www.com.com
item2.X-ABLabel:_$!<HomePage>!$_
X-SOCIALPROFILE;type=twitter;x-user=Twitteracc:http://twitter.com/Twitteracc
X-SOCIALPROFILE;type=facebook;x-user=Face.book:http://www.facebook.com/Face.book
END:VCARD

…一个人没有社交信息。后来我尝试添加社交信息,这也是一个错误。只有当我创建一个新的ABPersonCreate()时,它才能工作……所以这是我的错误?还是还不行?有什么想法吗?

这将是SDK中的一个bug…因此您唯一能做的就是分离字符串并创建一个新的ABPerson-使用ABPersonCreate()-只需查看我的代码-它对我有用

-(NSMutableDictionary*)getMyVCardObjects:(NSString*)vCardString{

NSString *firstname;
NSString *lastname;
NSString *pos;
NSString *company;
NSString *email;
NSString *www;
NSString *tel;
NSString *twitterUserName;
NSString *facebookUserName;

NSArray *myArr = [vCardString componentsSeparatedByString:@"\n"];
for (int i=0; i<[myArr count]; i++) {

    //vorname nachname
    if ([[myArr objectAtIndex:i] rangeOfString:@"FN:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        if ([tempArray count] >= 2) {
            firstname = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@" "] objectAtIndex:0];
            lastname = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@" "] objectAtIndex:1];
        }
    }

    //company
    if ([[myArr objectAtIndex:i] rangeOfString:@"ORG:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        company = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@";"] objectAtIndex:0];
    }

    //title = pos
    if ([[myArr objectAtIndex:i] rangeOfString:@"TITLE:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        pos = [tempArray objectAtIndex:1];
    }

    //email
    if ([[myArr objectAtIndex:i] rangeOfString:@"EMAIL;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        email = [[[tempArray objectAtIndex:2]componentsSeparatedByString:@":"] objectAtIndex:1];
    }


    //tel
    if ([[myArr objectAtIndex:i] rangeOfString:@"VOICE;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        tel = [[[tempArray objectAtIndex:4]componentsSeparatedByString:@":"] objectAtIndex:1];
    }


    //www
    if ([[myArr objectAtIndex:i] rangeOfString:@"URL;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        www = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@":"] objectAtIndex:1];
    }



    //twitter
    if ([[myArr objectAtIndex:i] rangeOfString:@"twitter"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];

        if ([[tempArray objectAtIndex:1] rangeOfString:@"type=twitter"].location != NSNotFound) {

            twitterUserName = [[[[[tempArray objectAtIndex:2]componentsSeparatedByString:@"="] objectAtIndex:1] componentsSeparatedByString:@":"] objectAtIndex:0];

        }

    }

    if ([[myArr objectAtIndex:i] rangeOfString:@"facebook"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];

        if ([[tempArray objectAtIndex:1] rangeOfString:@"type=facebook"].location != NSNotFound) {

            facebookUserName = [[[[[tempArray objectAtIndex:2]componentsSeparatedByString:@"="] objectAtIndex:1] componentsSeparatedByString:@":"] objectAtIndex:0];

        }

    }
}
return [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:firstname,lastname,pos,company,email,www,tel,twitterUserName,facebookUserName, nil] forKeys:[NSArray arrayWithObjects:@"firstname",@"lastname",@"pos",@"company",@"email",@"www",@"tel",@"twitterUserName",@"facebookUserName", nil]];
NSString*firstname;
NSString*lastname;
NSString*pos;
NSString*公司;
NSString*电子邮件;
NSString*www;
NSString*电话;
NSString*推特用户名;
NSString*facebookUserName;
NSArray*myArr=[vCardString组件由字符串分隔:@“\n”];
对于(int i=0;i=2){
firstname=[[tempArray objectAtIndex:1]组件通过字符串分离:@”“]objectAtIndex:0];
lastname=[[tempArray objectAtIndex:1]组件通过字符串分离:@”“]objectAtIndex:1];
}
}
//公司
if([[myArr objectAtIndex:i]rangeOfString:@“ORG:”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@分隔:]:“];
company=[[tempArray objectAtIndex:1]由字符串@分隔的组件“]objectAtIndex:0];
}
//标题=位置
if([[myArr objectAtIndex:i]rangeOfsString:@“TITLE:”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@分隔:]:“];
pos=[tempArray objectAtIndex:1];
}
//电子邮件
if([[myArr objectAtIndex:i]rangeOfString:@“EMAIL;”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@;“]分隔;
email=[[tempArray objectAtIndex:2]组件由字符串@分隔:“]objectAtIndex:1];
}
//电话
if([[myArr objectAtIndex:i]rangeOfsString:@“VOICE;”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@;“]分隔;
tel=[[tempArray objectAtIndex:4]由字符串@分隔的组件“]objectAtIndex:1];
}
//万维网
if([[myArr objectAtIndex:i]rangeOfString:@“URL;”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@;“]分隔;
www=[[tempArray objectAtIndex:1]由字符串@分隔的组件:“]objectAtIndex:1];
}
//推特
if([[myArr objectAtIndex:i]rangeOfString:@“twitter”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@;“]分隔;
if([[tempArray objectAtIndex:1]rangeOfString:@“type=twitter”].location!=NSNotFound){
twitterUserName=[[tempArray objectAtIndex:2]组件按字符串分离:@“=”]objectAtIndex:1]组件按字符串分离:@:“]objectAtIndex:0];
}
}
if([[myArr objectAtIndex:i]rangeOfString:@“facebook”].location!=NSNotFound){
NSArray*tempArray=[[myArr objectAtIndex:i]组件由字符串@;“]分隔;
if([[tempArray objectAtIndex:1]rangeOfString:@“type=facebook”].location!=NSNotFound){
facebookUserName=[tempArray objectAtIndex:2]组件按字符串分离:@“=”]objectAtIndex:1]组件按字符串分离:@:“]objectAtIndex:0];
}
}
}
return[NSMutableDictionary Dictionary WithObjects:[NSArray arrayWithObjects:firstname,lastname,pos,company,email,www,tel,twitterUserName,facebookUserName,nil]forKeys:[NSArray arrayWithObjects:@“firstname”,“lastname”,“pos”,“company”,“email”,“www”,“tel”,“twitterUserName”,“facebookUserName”,nil];
}

玩得开心

NSString *firstname;
NSString *lastname;
NSString *pos;
NSString *company;
NSString *email;
NSString *www;
NSString *tel;
NSString *twitterUserName;
NSString *facebookUserName;

NSArray *myArr = [vCardString componentsSeparatedByString:@"\n"];
for (int i=0; i<[myArr count]; i++) {

    //vorname nachname
    if ([[myArr objectAtIndex:i] rangeOfString:@"FN:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        if ([tempArray count] >= 2) {
            firstname = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@" "] objectAtIndex:0];
            lastname = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@" "] objectAtIndex:1];
        }
    }

    //company
    if ([[myArr objectAtIndex:i] rangeOfString:@"ORG:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        company = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@";"] objectAtIndex:0];
    }

    //title = pos
    if ([[myArr objectAtIndex:i] rangeOfString:@"TITLE:"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@":"];
        pos = [tempArray objectAtIndex:1];
    }

    //email
    if ([[myArr objectAtIndex:i] rangeOfString:@"EMAIL;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        email = [[[tempArray objectAtIndex:2]componentsSeparatedByString:@":"] objectAtIndex:1];
    }


    //tel
    if ([[myArr objectAtIndex:i] rangeOfString:@"VOICE;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        tel = [[[tempArray objectAtIndex:4]componentsSeparatedByString:@":"] objectAtIndex:1];
    }


    //www
    if ([[myArr objectAtIndex:i] rangeOfString:@"URL;"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];
        www = [[[tempArray objectAtIndex:1]componentsSeparatedByString:@":"] objectAtIndex:1];
    }



    //twitter
    if ([[myArr objectAtIndex:i] rangeOfString:@"twitter"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];

        if ([[tempArray objectAtIndex:1] rangeOfString:@"type=twitter"].location != NSNotFound) {

            twitterUserName = [[[[[tempArray objectAtIndex:2]componentsSeparatedByString:@"="] objectAtIndex:1] componentsSeparatedByString:@":"] objectAtIndex:0];

        }

    }

    if ([[myArr objectAtIndex:i] rangeOfString:@"facebook"].location != NSNotFound) {

        NSArray *tempArray = [[myArr objectAtIndex:i] componentsSeparatedByString:@";"];

        if ([[tempArray objectAtIndex:1] rangeOfString:@"type=facebook"].location != NSNotFound) {

            facebookUserName = [[[[[tempArray objectAtIndex:2]componentsSeparatedByString:@"="] objectAtIndex:1] componentsSeparatedByString:@":"] objectAtIndex:0];

        }

    }
}
return [NSMutableDictionary dictionaryWithObjects:[NSArray arrayWithObjects:firstname,lastname,pos,company,email,www,tel,twitterUserName,facebookUserName, nil] forKeys:[NSArray arrayWithObjects:@"firstname",@"lastname",@"pos",@"company",@"email",@"www",@"tel",@"twitterUserName",@"facebookUserName", nil]];