gpt4 book ai didi

objective-c - 在线程之间转移对象所有权?

转载 作者:行者123 更新时间:2023-12-03 17:06:50 24 4
gpt4 key购买 nike

假设我有一个创建对象的后台线程。最终需要该对象来更新 UI,因此它必须进入主线程。在一个线程上分配一个对象并在另一个线程上释放它似乎很尴尬。这是常见的还是有更好的模式?考虑:

// Called on a background thread
-(void)workerDoStuff
{
MyObject *obj = [[MyObject alloc] init];
[self performSelectorOnMainThread:@selector(updateUI:) withObject:obj];
}

// Performed on main thread
- (void)updateUI:(MyObject *)obj
{
// Do stuff with obj
[obj release];
}

谢谢

最佳答案

来自the documentation :

This method retains the receiver and the arg parameter until after the selector is performed.

因此,您可以在调用后释放 workerDoStuff 中的 obj,因为它将为您保留,直到 updateUI: 返回。

关于objective-c - 在线程之间转移对象所有权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5445959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com