每当您尝试展示 TWTweetComposeViewController 并且用户没有将 Twitter 帐户添加到他们的设备时,系统会提示他们转到“设置”应用程序并添加一个。完成后,他们必须手动导航回应用程序。
我的应用程序有什么方法可以知道他们已经成功添加了一个帐户?
实际上,有一种方法可以在您的应用程序运行时收到新帐户的通知。ACAccountStore 提供通知 ACAccountStoreDidChangeNotification,您可以使用 Key-Value Observing 观察更改。
啊,在这种情况下,您可以跟踪他们首次启动应用程序时拥有的用户帐户数量,并将其保存到 NSUserDefaults。当您设置 TWTweetComposeViewController 时,请检查该数字是否与以前相同。
__block BOOL accountSizeChanged = NO;
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if(granted)
{
int oldSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"myKey"];
int newSize = [accountStore accountsWithAccountType:accountType].count;
if(oldSize != newSize)
accountSizeChanged = YES;
[[NSUserDefaults standardUserDefaults] setInteger:newSize forKey:@"myKey"];
}
}];