NSLog()
을 사용하여 모든 휴대 전화의 연락처를 콘솔에 인쇄하려고합니다. 현재이 코드는 단지 (null)
입니다.ABAddressBookRequestAccessWithCompletion()에서 연락처 배열을 가져 오지 않는 경우
.H
@property (nonatomic, strong) NSMutableArray *contactsObjects;
하는 .m
@synthesize contactsObjects;
//lazy instantiation.
- (NSMutableArray *)contactsObjects
{
if(!contactsObjects)
{
contactsObjects = [[NSMutableArray alloc]init];
}
return contactsObjects;
}
- (void)viewWillAppear:(BOOL)animated
{
CFErrorRef error = nil;
// Request authorization to Address Book
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, &error);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
// First time access has been granted, add all the user's contacts to array.
CFMutableArrayRef contactsObjects = ABAddressBookCopyArrayOfAllPeople(addressBookRef);
} else {
// User denied access.
// Display an alert telling user that they must allow access to proceed to the "invites" page.
}
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
// The user has previously given access, add all the user's contacts to array.
CFMutableArrayRef contactsObjects = ABAddressBookCopyArrayOfAllPeople(addressBookRef);
}
else {
// The user has previously denied access
// Send an alert telling user that they must allow access to proceed to the "invites" page.
}
NSLog(@"%@", contactsObjects);
}
내가이 경고 이곳에 오기 :
나는 아무 생각이 내가 내 연락처의 이름과 번호를 콘솔에 제대로 인쇄하기 위해해야 할 일입니다.
연락처 이름과 번호는 어떻게 인쇄합니까?
ivar를 섀도 잉하는 것에 대한'viewWillAppear :'에 또 다른 경고가 없습니까? 또는 선언자가 설정자를 가리키는 변수에 대한 오류가 있습니까? –
나는 실제로는 아니야. 두 가지 오류는 "노란색!" 오류, 그리고 그들은 단지 위에 게시 오류입니다. – Chisx
어떤 Xcode 버전을 사용하고 있습니까? 명시 적으로'contactsObjects' 합성하고 있습니까? –