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 回答