0

画像を php ファイルにアップロードしようとしていますが、すべてうまくいきますが、サイトが

アプリの読み込みが遅くなり、ページの読み込みが完了するまで縮み始めるので、私は考えました

このような縮れを避けるためにスレッドを使用することについてですが、現在、アプリが表示されて終了します。私はしません

警告や問題を確認してください...アプリに入るだけですぐに表示されます。私を助けてください

アウト

コード:

-(void) source {
    NSData *imageData = UIImageJPEGRepresentation(imageView.image, 80);

    NSString *urlString = @"http://domain";

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];


    our_label.text = [NSString stringWithFormat:@"%@", returnString];
}


-(void)som:(id)param{
    [lock lock];

    [lock unlock];
}
4

3 に答える 3

2

完全に間違ったアプローチ。NSURLConnection のドキュメントを注意深く見ると、メソッド sendAsynchronousRequest:queue:completionHandler: が見つかります。

ただし、ブロックの使い方を学ぶ必要があります (しかし、それだけの価値はあります)。

于 2012-07-02T14:38:43.040 に答える
2

非同期メソッドで NSURLRequest を使用できますが、現在のコードを機能させたい場合は、これらの手順に従ってください

最初にこの行を変更します

[NSThread detachNewThreadSelector:@selector(multithreading:) toTarget:  [MainViewController class] withObject:nil];

[NSThread detachNewThreadSelector:@selector(multithreading:) toTarget:self withObject:nil];

次に、非 UI スレッドで UI を更新しているため、これをラップします。

our_label.text = [NSString stringWithFormat:@"%@", returnString];

dispatch_get_main_queue次のように

dispatch_async(dispatch_get_main_queue(), ^{
    our_label.text = [NSString stringWithFormat:@"%@", returnString];
});

実際には使用していないため、最後にロックを削除します

    //[lock lock];
    [self source];
    //[lock unlock];
于 2012-07-02T14:38:44.957 に答える
1

やんくんの回答に加えて、

AFNetworkingコード化がより簡単で安全な、非同期操作を処理するためのすべての機能を備えたサードパーティのライブラリを使用することをお勧めします。

リンク: https://github.com/AFNetworking/AFNetworking/

于 2012-07-02T14:42:03.733 に答える