1

我在使用一种用于 Twitter 访问的方法时遇到问题。更具体地说,使用以下方法:

- (ACAccountType *)accountTypeWithAccountTypeIdentifier:(NSString *)typeIdentifier

此方法在 iOS 6 下正常工作,但nil在 iOS 5 下返回。文档中没有说明何时会出现这种行为,也没有任何迹象表明此方法在 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,因为它只返回帐户类型,该类型在所有相同类型的帐户之间共享。

4

1 回答 1

0

我要回答我自己的问题。我只是添加了一个 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
    }
}
于 2013-04-04T18:08:06.553 回答