내 앱은 Social.framework
및 ACAccount
을 사용하여 Facebook에서 좋아하는 콘텐츠를 가져옵니다. 앱이 후속 실행시 새로운 좋아하는 것을 자동으로 가져올 수 있도록 Facebook 계정 식별자를 NSUserDefaults
으로 저장합니다. 첫 번째 가져 오기가 정상적으로 작동합니다. 문제는 후속 실행시 ACAccount
을 다시 인스턴스화하는 것입니다. 이것은 어떻게 든 불완전 ACAccount
객체를 반환누락 된 값/크래시를 수정하는 NSLog?
- (ACAccount *)facebookAccount {
if(!_facebookAccount) {
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
NSString *accountIdentifier = [[NSUserDefaults standardUserDefaults] valueForKey:SWFacebookAccountIdentifierKey];
if(accountIdentifier)
_facebookAccount = [accountStore accountWithIdentifier:accountIdentifier];
}
return _facebookAccount;
}
:이이 객체를 사용하여 종료하는 방법에서 기록됩니다
type:(null)
identifier: B6E94A67-AF94-408F-A618-6CD4D78564DC
accountDescription: Facebook
username: [email protected]
objectID: x-coredata://589C098E-F829-4284-841B-EE4A0003FF21/Account/p2
enabledDataclasses: {(
)}
enableAndSyncableDataclasses: {(
)}
properties: {
fullname = "Sam Vermette";
uid = 716308665;
}
parentAccount: (null)
owningBundleID:(null)
그래서 나는이처럼 보이는
facebookAccount
게터 있습니다. , 이상한 일이 있다는 것입니다 지금이 요청
에 대한 잘못된 계정 유형 :
NSInvalidArgumentException ', 이유 :'당신이 볼 수 있듯이
type
값은 내 응용 프로그램은 다음과 같은 예외를 발생하게null
입니다 내 게터에return
앞에NSLog(_facebookAccount)
을 추가하면type
키가 null이 아니며 내 앱이 중단되지 않습니다. 이 문제를 해결 한 NSLog는 내 코드에 문제가있는 것일 수도 있지만 정확히 무엇을 알아 내지 못하는지 알고 있습니다. 어떤 아이디어?
당신이 _facebookAccount을 유지해야하고 반환 후 NSLog를 작성하는 경우가 돌아왔다,이 쓰레기 값을 표시합니다 내 계정 저장소를 할당하여이 문제를 해결했습니다. – fibnochi
@fibnochi 그는 ARC를 사용하므로 보유를 사용할 수 없습니다. 실제로 샘, 일부 ivar 또는 전역 변수에 저장 한 다음 인쇄 할 수 있습니다. –
facebookAccount가 강력한 속성으로 설정되어 있으므로 그대로 유지됩니다. 문제는 accountStore를 계속 유지해야한다는 것입니다. – samvermette