2012-09-12 64 views
0

這是我的代碼誤差ACAccount和TWRequest

TWRequest *twRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@", kTwitterURLBase, kTwitterMethodHelpConfiguration]] 
              parameters:nil 
             requestMethod:TWRequestMethodGET]; 

[twRequest setAccount:[self twitterAccount]]; 

[twRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { 

    // Handling 

}]; 

的方法twitterAccount

- (ACAccount *)twitterAccount { 

    NSString *identifier = [[Session getInstance] selectedAccountIdentifier]; 
    ACAccount *account = nil; 

    if ([identifier length] > 0) { 

     ACAccountStore *accountStore = [[ACAccountStore alloc] init]; 
     account = [accountStore accountWithIdentifier:identifier]; 
    } 

    return account; 
} 

由於調試器說,該帳戶被正確返回,但是當我在控制檯打印出來我什麼也沒得到,一個空白處;但帳戶對象有一個參考。

就在請求開始執行後,我得到一個EXC_BAD_ACCESS錯誤。該堆棧說,發送錯誤消息[ACAccount accountType]時發生錯誤。

很明顯,這是一個內存問題,我用ARC新的,所以我想這個問題會在那裏。

任何幫助?

回答

1

我不知道爲什麼地獄我不得不這樣做,但如果我聲明一個實例變量的ACAccountStore要保留和改變方法這樣

- (ACAccount *)twitterAccount { 

    NSString *identifier = [[Session getInstance] selectedAccountIdentifier]; 
    ACAccount *account = nil; 

    if ([identifier length] > 0) { 

     if (accountStore_ == nil) { 

      accountStore_ = [[ACAccountStore alloc] init]; 
     } 

     account = [accountStore_ accountWithIdentifier:identifier]; 
    } 

    return account; 
} 

一切都完美。爲什麼? :\

+0

有同樣的錯誤。你的答案解決了它,但我仍然不知道爲什麼:) – Flax

+0

哦,我剛剛有一個與CLLocationManager相同的問題,它的修復方式是一樣的。也許我做錯了什麼,因爲我什麼都不懂:\ – emenegro

+0

文檔說'ACAccount'與'ACAccountStore'有關。所以,只要你需要賬戶,你就應該保持賬戶存儲。 – mattjgalloway