我的应用使用Social.framework
和从 Facebook 导入喜欢ACAccount
。我保存 Facebook 帐户标识符,NSUserDefaults
以便应用程序可以在后续启动时自动导入新的喜欢。第一次导入工作正常。ACAccount
问题在于在随后的启动中重新实例化。
所以我有一个facebookAccount
看起来像这样的吸气剂:
- (ACAccount *)facebookAccount {
if(!_facebookAccount) {
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
NSString *accountIdentifier = [[NSUserDefaults standardUserDefaults] valueForKey:SWFacebookAccountIdentifierKey];
if(accountIdentifier)
_facebookAccount = [accountStore accountWithIdentifier:accountIdentifier];
}
return _facebookAccount;
}
这会返回一个不完整的ACAccount
对象:
type:(null)
identifier: B6E94A67-AF94-408F-A618-6CD4D78564DC
accountDescription: Facebook
username: samvermette@gmail.com
objectID: x-coredata://589C098E-F829-4284-841B-EE4A0003FF21/Account/p2
enabledDataclasses: {(
)}
enableAndSyncableDataclasses: {(
)}
properties: {
fullname = "Sam Vermette";
uid = 716308665;
}
parentAccount: (null)
owningBundleID:(null)
这从最终使用此对象的方法中记录下来。如您所见,type
值为null
,这使我的应用程序抛出以下异常:
NSInvalidArgumentException', reason: '此请求的帐户类型无效
现在,最奇怪的是,如果我在 getterNSLog(_facebookAccount)
之前添加,键不为空,我的应用程序不会崩溃。我意识到修复此问题的 NSLog 可能暗示我的代码有问题,但我无法弄清楚到底是什么。有任何想法吗?return
type