2
從塊中顯示UIAlertView的最佳方式是什麼?如何從iOS上的塊顯示UIAlertView?
我已經在我的代碼如下動作:
- (IBAction)connectWithTwitterClicked:(id)sender {
ACAccountStore * account = [[ACAccountStore alloc]init];
ACAccountType * accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[account requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
if (granted == YES){
NSLog(@"Twitter account has been granted");
NSArray * arrayOfAccounts = [account accountsWithAccountType:accountType];
if([arrayOfAccounts count] > 0){
ACAccount * twitterAccount = [arrayOfAccounts lastObject];
NSLog(@"Found twitter Id of [%@]", twitterAccount.username);
// continue on to use the twitter Id
} else {
// no twitter accounts found, display alert to notify user
}
} else{
NSLog(@"No twitter accounts have been granted");
// no twitter accounts found, display alert to notify user
}
}];
}
我試過到目前爲止這些解決方案:
- 在任一2個註釋行,直接創建和顯示 UIAlertView中,這使應用程序崩潰,我相信這是由於 該塊是異步進程,並且無法訪問UI線程來顯示警報
- 在塊外部創建了一個NSMutableString,並將其標記爲
__block
,將其設置在註釋行中,然後顯示。 類似的問題在這裏塊是異步運行,所以在 顯示警報的時間theres不能保證 NSMutableString已被設置。
任何人都可以提出解決方案嗎?我希望能夠以某種方式通知用戶,以便他們既可以不使用Twitter,也可以在設備設置中關閉並設置帳戶。
由於
如果您使用ARC,請務必刪除「autorelease」調用。 – lxt
腦死亡多餘的不義之舉的任何原因downvote? – 2013-01-03 20:22:56