iphone - performSelectorOnMainThreadが割り当て解除されたメッセージをスローする

原文 iphone objective-c synchronization

Twitterデータの解析中に、スレッドを使用してメインURLを呼び出し、データをダウンロードしました。ダウンロードは完全に行われますが、データのダウンロード中に[戻る]ボタンを押すと、割り当て解除されたperformSelectorOnMainThreadメッセージがスローされます。 isCancelledを使用できることはわかっていますが、まだ機能していません。誰かがこの問題に遭遇し、それを解決しましたか?

- (void)LoadTwitterData
{
NSString *urlString =@"http://search.twitter.com/search.json?q=tabc&result_type=recent&rpp=2500";
NSURL *url = [NSURL URLWithString:urlString];

NSString *jsonString = [NSString stringWithContentsOfURL:url];
NSDictionary *values = [jsonString JSONValue];    

/**** Throws here *****/
[self performSelectorOnMainThread:@selector(didFinishLoadingResults:) withObject:values waitUntilDone:NO];

}
答え
LoadTwitterData:がバックグラウンドスレッドにある場合は、自動解放プールを作成する必要があります(まだ作成していない場合)。コードを-で囲みます

NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];


//your code

[pool drain];
関連記事

android - 既存のお客様向けのiPhoneおよびAndroidへのツールの導入

iphone - iPhoneのファイルチューザー

iphone - iPhoneアプリがフォアグラウンドに戻された後、現在のUIView / UIControllerを確認するにはどうすればよいですか?

iphone - Iphone Webapp起動画面の遅延

iphone - 変更のたびに保存せずに、異なるスレッドからCore Dataオブジェクトに変更を加える方法

iphone - ABPersonViewControllerをカスタマイズする

iphone - Localizable.stringsファイルが存在する言語のリストを取得するにはどうすればよいですか?

iphone - アクションシートのようにUIViewcontrollerをボタンの上から下にスライドさせる方法は?

iphone - 石英の影が正しく描画されない

iphone - iPhone:Facebookのダイアログが表示され、Sharekitを使用するとすぐに消えます