0

私はいくつかの問題を抱えています。だから私はphpから曲名と画像を更新するコードを持っています。曲名は機能し、更新されましたが、画像は機能しません.phpファイルではすべて機能しますが、私のプロジェクトでは機能しません-いいえ。たとえば、10秒後にURLから画像を更新する方法。ありがとう。

-(void)viewWillDraw {

    NSURL *artistImageURL = [NSURL URLWithString:@"http://site.ru/ParseDataField/kiss.php?image"];

    NSImage *artistImage = [[NSImage alloc] initWithContentsOfURL:artistImageURL];

    [dj setImage:artistImage];

    dispatch_queue_t queue = dispatch_get_global_queue(0,0);

    dispatch_async(queue, ^{

    NSError* error = nil;

        NSString* text = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://site.ru/ParseDataField/kiss.php?artist"]

                                               encoding:NSASCIIStringEncoding
                                                   error:&error];

        dispatch_async(dispatch_get_main_queue(), ^{

            [labelName setStringValue:text];


        });
    });
}
4

1 に答える 1

0

このコードを 以外の場所に配置することを検討する必要があります-viewWillDraw。このルーチンは、状況によっては同じものに対して複数回呼び出すことNSViewができます。さらに重要なことに、[super viewWillDraw]実際に正しく描画されることを確認するために呼び出す必要があります (ビュー自体に何かが描画されている場合)。

定期的な更新 (10 秒ごとなど) の場合NSTimerは、次のオブジェクトの取得をトリガーするために を使用することを検討する必要があります。

画像が正しく描画されない理由に関する一般的な質問については、画像の取得と描画のコードを、ラベルの取得と描画のコードと同じ構造にすることを検討する必要があります。これにより、チェーン [dj setImage: artistImage]の外側でメソッド呼び出しが取得されるため、ここで問題が発生する可能性があります。viewWillDraw

于 2013-05-14T11:52:24.500 に答える