0

これは私のヘッダーセクションです:

@interface RootViewController : UIViewController
{
    NSString *status_id;
}

コントローラーファイルで、変数を割り当てています:

- (void)updateStatus
{
    NSURL *url = [NSURL URLWithString:@"http://localhost/RightNow/API/status.json"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request startSynchronous];
    NSError *error = [request error];
    NSString *response = [NSString alloc];

    NSError *error2;
    NSData* data = [response dataUsingEncoding:NSUTF8StringEncoding];
    NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:data      options:kNilOptions error:&error2];
    status_id = [json objectForKey:@"id"];
}

今、status_id を再度使用しようとすると、エラーが発生します

- (IBAction)likeClick:(id)sender
{
    NSURL *url = [NSURL URLWithString:@"http://localhost/RightNow/API/vote"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setRequestMethod:@"POST"];
    [request setPostValue:status_id forKey:@"id"]; //The error comes here
    [request setPostValue:@"like" forKey:@"vote"];
    [request startSynchronous];
}

私の悪い英語でごめんなさい。私を助けてください、ありがとう!

4

1 に答える 1

1

[json objectForKey:@"id"]; オブジェクトを自動解放プールに返します。次のようにコピーメッセージを送信する必要があります

status_id = [[json objectForKey:@"id"] copy];

必要に応じてリリースします(ARCを使用していない場合)

于 2012-09-10T19:10:35.523 に答える