1) Нет, поскольку это проблема системного уровня, поэтому вы не можете управлять ею или управлять ею непосредственно из изолированной программной среды приложений
2) canSendTweet просто подтверждает, что Twitter доступен на этом устройстве и что учетная запись была настроена. Он не предназначен для определения, предоставил ли пользователь вам доступ к своей учетной записи в Twitter.
Если вы хотите знать, может ли ваше приложение получать доступ к Twitter пользователей, вы должны использовать:
- (void)requestAccessToAccountsWithType:(ACAccountType *)accountType
withCompletionHandler:(ACAccountStoreRequestAccessCompletionHandler)handler;
находится в платформе учетных записей
#import <Accounts/Accounts.h>
Например, это один из способов сделать это:
accountStore = [[ACAccountStore alloc] init];
twitterAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:twitterAccountType
withCompletionHandler:^(BOOL granted, NSError *error) {
if (!granted) {
// Access denied by the user - do what you need to do
NSLog(@"Authenticated : User rejected access to his account.");
}
else {
// Access granted
// Do what you want here to send the tweet or whatever
}
}];