ios - 收集字符串值并添加到数组中

标签 ios objective-c

我正在编写一个应用程序,我想从列表中收集姓名和电话号码并将其添加到数组中。我该怎么做呢?我可以检索名字和姓氏,但是我无法在下面的代码中添加电话号码,因为它在另一个 for循环中。它可能看起来很简单,但由于我是新手,所以我陷入了困境。

for (i = 0; i < [list count]; i++)
{
    NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);

    NSString *lastName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);

    NSMutableArray *name = [NSMutableArray array];
    if(firstName != nil)
        [name addObject:firstName];

    if(lastName != nil)
        [name addObject:lastName];*/

    [self displaynames:name];


    ABMultiValueRef mobile=ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);

    for (int k=0;k<ABMultiValueGetCount(mobile); k++)
    {
        NSString *mobileNo = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(mobile, k);
        NSLog(@"mobile number: %@",mobileNo);    
    }
}

- (void)displaynames:(NSMutableArray*)names
{
    for (NSMutableArray* name in names)
    {
        NSLog(@"MyResult:%@ %@",[names objectAtIndex:0],[names objectAtIndex:1]);
    }
}

因此,在上面的代码中,我能够从列表中获取名字和姓氏并将其添加到数组中,类似地,如何获取手机号码并添加到同一数组中并在displayNames:函数中获取结果呢?是另一个for循环。有人可以编辑代码并告诉我我必须对以上代码进行哪些更改。同样,结果两次都显示两次,为什么呢?

最佳答案

NSMutableArray *contactList=[[NSMutableArray alloc] init];

for (int i=0; i<4; i++) {

    NSMutableDictionary *contactInfo=[[NSMutableDictionary alloc] init];

    for (int i = 0; i < [list count]; i++)
    {
        NSString *firstName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonFirstNameProperty);
        NSString *lastName = (__bridge_transfer NSString *)ABRecordCopyValue(contactPerson, kABPersonLastNameProperty);

        if (![firstName isEqualToString:@""]) {
            [contactInfo setValue:firstName forKey:@"firstName"];
        }

        if (![lastName isEqualToString:@""]) {
            [contactInfo setValue:lastName forKey:@"lastName"];
        }

        NSMutableArray *mobileNoArray=[[NSMutableArray alloc] initWithCapacity:ABMultiValueGetCount(mobile)];

        ABMultiValueRef mobile=ABRecordCopyValue(contactPerson, kABPersonPhoneProperty);

        for (int k=0;k<ABMultiValueGetCount(mobile); k++)
        {
            NSString *mobileNo = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(mobile, k);
            [mobileNoArray addObject:mobileNo];
        }

        if (mobileNoArray.count!=0) {
            [contactInfo setObject:mobileNoArray forKey:@"mobileNo"]
        }
    }

    [contactList addObject:contactInfo];
    NSLog(@"contact info ==  %@",contactInfo);
}

NSLog(@"contact list array is %@",contactList);

关于ios - 收集字符串值并添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16931968/

相关文章:

ios - 什么是 iOS 7.0.4 的用户代理字符串

ios - 为什么推送另一个 View Controller 的动画不流畅?

objective-c - 如何在不使用大量内存的情况下在 Objective-C 中导入包含许多小记录的大文本文件

objective-c - 确定 UIViewController 第一次出现

iOS 8 popoverpresentationcontroller popoverlayoutmargin 不工作

iphone - iOS - 用户是否能够恢复从商店中删除的应用程序

ios - CoreData实体使用合并策略作为NSMergeByPropertyObjectTrumpMergePolicy保存/更新,从而在Xcode中抛出编译器错误?

ios - 如何阻止我的动画按钮不断循环?

ios - NSInvocation 返回 nil

objective-c - 将除双击以外的触摸转发到 UITextView