У меня вызывается следующий метод при перезагрузке UITableView:
-(NSArray *)theAccounts {
if (__theAccounts != nil) {
return __theAccounts;
}
// Create an account store object.
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
// Create an account type that ensures Twitter accounts are retrieved.
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if(granted) {
// Get the list of Twitter accounts.
NSArray *accountsArray = [[NSArray alloc] initWithArray:[accountStore accountsWithAccountType:accountType]];
self.theAccounts = accountsArray;
}
}];
return __theAccounts;
}
Методы установки в .h:
@property (strong, nonatomic) NSArray *theAccounts;
и в .m:
@synthesize theAccounts = __theAccounts;
Я хотел бы иметь возможность эффективно очищать self.theAccounts и перезагружать.Поэтому я создал метод повторной синхронизации, но он никогда не возвращает никаких значений после перезагрузки таблицы:
-(void)resyncAccounts {
self.theAccounts = nil;
[self.tableView reloadData];
}
Я использую ARC в iOS 5 SDK.Может ли это быть проблемой?Я сделал то же самое с fetchedResultsController и у меня не было проблем, но это не ARC.Стоит отметить, что он возвращает данные при первом вызове и возвращает __TheAccounts после этого, пока я не попытаюсь - (void) resyncAccounts {}.