我在使用Twitter访问的一种方法时遇到了问题。 更具体地说,该方法:
- (ACAccountType *)accountTypeWithAccountTypeIdentifier:(NSString *)typeIdentifier
此方法在iOS 6下正常工作,但在iOS 5下返回nil
。 文档中没有指示何时会出现此类行为,也没有任何迹象表明此方法在 iOS 5 下不受支持。
我的代码片段:
- (void)preferredAccountWithSelectionHandler:(SSTwitterHelperAccountSelectionHandler)selectionHandler
{
ACAccountType* accountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[self.accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error)
{
// Some more code
}];
}
直观地,我认为即使没有配置帐户,此方法也不应该返回 nil,因为它只返回帐户类型,该类型在同一类型的所有帐户之间共享。
我将
回答我自己的问题。 我刚刚添加了一个 IF 条件,以防它返回 nil,这似乎是一个有效的结果。
- (void)preferredAccountWithSelectionHandler:(SSTwitterHelperAccountSelectionHandler)selectionHandler
{
ACAccountType* accountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
if (accountType)
{
[self.accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error)
{
// Some more code
}];
}
else
{
// No accounts for the type specified
}
}