• NSOperation和NSURLConnection

    最近一个客户向我汇报了一个程序的问题。经过分析发现问题是NSURLConnection没有正常工作。记得以前测试时没有问题啊。后来上网查到原来在iOS 4.0以后,NSURLConnection无法在NSOperation中正常运行,换句话说,NSURLConnection只能运行于主线程。解决方法其实倒是蛮简单(比如我的程序在download中):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -(void)download
    {
        // NSURLConnectionn won't work if it's not in the main thread
        if (![NSThread isMainThread])
        {
            [self performSelectorOnMainThread:@selector(download) withObject:nil waitUntilDone:NO];
            return;
        }
       
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:_urlString]];
        _connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];     
    }
     
  • 跨平台代码分享之一 – 线程

    有些iPhone程序是直接从其他平台移植过来,或者说你喜欢使用cpp,再或者是你打算让你的程序跨越平台,那么使用跨平台的cpp库无疑是一个很好的选择。这就是本系列的主题。

    第一篇为大家分享一段本人自用的线程类。它使用pthread,因此可以跨平台使用(windows下需要下载pthread库)。由于程序很简单,就不做什么说明了。

    读文章 »