相关疑难解决方法(0)

Objective-C 2.0中的多线程问题

我有我的主应用程序委托,其中包含一个返回对象的方法.此应用程序委托在主线程上运行.

我也有一个在不同的线程上运行的NSOperation.除了希望能够在我的主线程上调用我的app委托方法之外,我还需要从我的NSOperation线程调用它来获取它返回的对象.我的第一个问题是,如果我从我的其他线程中调用这个...

id newObject = [[[UIApplication sharedApplication] delegate] myMethod];
Run Code Online (Sandbox Code Playgroud)

...将在与NSOperation相同的线程上处理该方法,还是与应用程序委托所在的线程(主)相同?

我还想确保myMethod我的操作线程或主线程一次只调用一次内部代码.我可以在应用程序委托中创建一个NSLock实例var,并执行以下操作:

-(id)myMethod {
    [myLock lock];
    myObject = // Get or create my object to return
    [myLock unlock];
    return myObject;
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

麦克风

iphone cocoa multithreading objective-c nslock

2
推荐指数
1
解决办法
5024
查看次数

标签 统计

cocoa ×1

iphone ×1

multithreading ×1

nslock ×1

objective-c ×1