在我的应用程序中,我希望用户选择一个带有peoplePicker的联系人。然后,我想将记录ID存储在NSArray中,因此我必须将其转换为NSNumber。但是,当将NSNumber添加到数组时,它不是。没有错误,但是当我查看调试器中的对象时,看到NSNumber personId
具有正确的值,但是数组personAdd
不包含它。
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
NSNumber *personId = [NSNumber numberWithInt:ABRecordGetRecordID(person)];
NSString *first = (NSString *)ABRecordCopyValue(person,kABPersonFirstNameProperty);
NSString *last = (NSString *)ABRecordCopyValue(person,kABPersonLastNameProperty);
NSArray *personAdd = [NSArray arrayWithObjects:first, last, personId, nil];
[self.myContactDataSource addPerson:personAdd]; //further usage of the data
[self.tableView reloadData]; //reload table view and
[peoplePicker dismissModalViewControllerAnimated:YES]; //dismiss people picker
return NO; //tell peoplepicker not to display the contact details
}
谁能告诉我该如何解决?
最佳答案
好的,假设first,last和personId都不为nil。 。 。
您说它在调试器中看起来不对-您是什么意思?
如果执行此操作会发生什么-是否可以将控制台复制到您的问题中:
// Debug the person id
NSLog(@"%i", [personId intValue]);
// Check that it's in the array OK
NSLog(@"%i", [personAdd objectAtIndex:2]);
// Add it to your stuff
[self.myContactDataSource addPerson:personAdd];
// Check that the array is still OK
NSLog(@"%i", [[myContactDataSource objectAtIndex:2] intValue]);
我知道这不是一个完整的答案,但可能可以进一步阐明问题!
关于objective-c - NSArray不接受NSNumber,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5058169/