16 August 2013

IOS下得delegate机制

尝试了几天IOS编程,觉得比较有特色的是他的线程编程易用性。其实和安卓中的界面线程特殊性相同,IOS也对线程编程做了很多工作。使得IOS下面的线程编写非常简单。

线程编程

//TODO 增加安卓主线程限制。

IOS 相较于安卓的线程编程提供了很易用的api,但却没有关于“主线程”的种种限制。IOS中主线程仍可以进行网络通信,甚至等待。但是我们写程序时候依然应注意,应在子线程中进行网络通信。

启动线程

有三种启动线程的方式: - 直接调用

直接调用:

[myObj performSelectorInBackground:@selector(myThreadMainMethod) withObject:nil];

这种方式直接将selector(被调用的线程线程程序)放入“后台线程”。

需要注意的是后台线程只有单独线程。两次调用此函数,如果前一个函数没有运行完,后面不会运行。

在xcode中(亦可能是ios版本的问题),有可能@selector不能被解析导致编译不过去。可以通过:来运行时加载selector。

//TODO dynamic add selector
  • NSThread调用

这种调用更加灵活,可以配置单独的子线程运行程序。

线程通信

IOS编程是严格依照MVC模式进行的。



blog comments powered by Disqus