1

TWRequest オブジェクトを使用して画像を投稿しようとしています。これが私のコードです:

ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    NSData *pngImage = UIImagePNGRepresentation(image);
    NSData *tweetText = [userText copy];
    [accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
        if (granted) {
            NSLog(@"Twitter is good to go");
            NSArray *twitterAccounts = [accountStore accountsWithAccountType:accountType];
            if (twitterAccounts.count) {
                ACAccount *twitterAccount = [twitterAccounts objectAtIndex:0];
                NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update_with_media.json"];
                TWRequest *request = [[TWRequest alloc] initWithURL:url parameters:nil requestMethod:TWRequestMethodPOST];
                [request addMultiPartData:pngImage withName:@"media" type:@"image/png"];
                [request addMultiPartData:tweetText withName:@"text" type:@"text/plain"];
                [request setAccount:twitterAccount];
                [request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
                    if (responseData)
                    {
                        NSError *error = nil;
                        NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error];
                        if (jsonArray) {
                            for(NSDictionary *item in jsonArray) {
                                NSLog(@"Item: %@", item);
                            }
                        }
                        else
                        {
                            NSLog(@"Error %@ with user info %@.", error, error.userInfo);
                        }
                    }
                }];                                   
            }
        } else {
            NSLog(@"The user does not grant us permission to access its Twitter account(s).");
        }
    }];

プログラムが次の行に到達するたびに[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {、次のエラーが発生します。

[__NSCFString バイト]: 認識されないセレクターがインスタンス 0x1d8f4250 に送信されました * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[__NSCFString バイト]: 認識されないセレクターがインスタンス 0x1d8f4250 に送信されました' 0x3473b90b 0x35c416fd 0x35c417a3 0x35c4065f 0x35c3fa6b 0x35c40ab9 0x5adc5 0x3bf7211f 0x3bf7fdcb 0x3bf80259 0x3bb83adbidbidbidbidbidbidbidbidbidbidbidbidbidbidbidbidbidbidfict3bf80280259

4

1 に答える 1

7

問題はにありtweetTextます。あなたはコピーしていますが、それをオブジェクトNSStringに割り当てています。NSData

これを変える:

NSData *tweetText = [userText copy];

これに:

NSData *tweetText = [userText dataUsingEncoding:NSUTF8StringEncoding];
于 2013-03-20T15:35:35.787 に答える