2011-12-10 6 views
1

TWRequestを使用してTwitterに返信します(「in_reply_to_status_id」を使用)。何らかの理由でTWRequestがクラッシュしています。REPLY投稿時にTWRequestがクラッシュする

ユーザーは、その後、REPLYIDを提供してあれば:

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

とクラッシュ:

-[__NSCFNumber length]: unrecognized selector sent to instance 0x160970 
2011-12-10 01:55:53.553 NSTweet[4694:1903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x160970' 
*** First throw call stack: 
(0x381548bf 0x31c3a1e5 0x38157acb 0x38156945 0x380b1680 0x3809e0a9 0x380b93eb 0x380e3085 0x339a5ecd 0x339a5deb 0x339a5a79 0x339a6047 0xbe37 0x31b0dd8d 0x37e0fd55 0x37e12897 0x365771cf 0x365770a4) 
terminate called throwing an exception 

この

if(replyID){ 
    paramDict = [NSDictionary dictionaryWithObjectsAndKeys: replyID, @"in_reply_to_status_id", tweet, @"status", nil]; 
} 
    else 
     paramDict = [NSDictionary dictionaryWithObject:tweet forKey:@"status"]; 

    postRequest = [[TWRequest alloc] initWithURL: 
    [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"] 
     parameters: paramDict requestMethod:TWRequestMethodPOST]; 



    // Post the request 
[postRequest setAccount:myAccount]; 

// Block handler to manage the response 
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 
//      [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) 


{ 

NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 

         NSLog(@"Twitter response, HTTP response: %i with Error: %@", [urlResponse statusCode], [error localizedDescription]); 
         NSLog(@"response: %@", responseDict); 

         if([urlResponse statusCode] == 200){ 

          if([delegate respondsToSelector:@selector(sendTweetSuccess)]){ 
           [delegate sendTweetSuccess]; 
          } 
         } 
         else{ 

          if([delegate respondsToSelector:@selector(sendTweetFailed:)]){ 
           [delegate sendTweetFailed:error]; 
          } 
         } 
        }]; 
} 

私はこれを指すクラッシュを取得していますreplyIDを指定しないと正常に動作します。助けてくれてありがとう。

答えて

3

あなたはNSNumberを送信しているようですが、TWRequestはすべてのパラメータがNSStringであることを期待しています。

+0

はい、ありがとうございます。私はTwitterからの "reply_id"から戻ってきたオブジェクトがNSStringではなくNSNumberとして返されたと思います。それをNSStringにキャストしました。 –

関連する問題