内存管理正在手动完成,ARC未在此项目中使用..
使用alloc
init
创建消息对象,并在后台线程上调用以下代码。
我在下面的调用之前传递了一个消息对象:
[self performSelectorOnMainThread:@selector(serverConnectionResult:) withObject: message waitUntilDone:NO];
我想做的电话之后:
[message release];
我很困惑我是否应该这样做,因为我担心在调用serverConnectionResult
时消息对象是否始终有效?方法调用performSelectorOnMainThread
是否保留了消息对象本身?知道被调用的方法保留我传递的对象的规则是什么?
答案 0 :(得分:2)
这样做是安全的。 -performSelectorOnMainThread:withObject:waitUntilDone:
将保留邮件的目标和对象。同样地,-performSelector:withObject:afterDelay:
也将保留目标和对象。
答案 1 :(得分:0)
您还可以使用Grand Central Dispatch并在主线程上使用dispatch_async
并传入一个调用您的方法的块,然后释放该消息。