INs*_*INs 3 grand-central-dispatch nsautoreleasepool ios
我读了关于GCD的文章,有一个例子:
dispatch_queue_t bgQueue = myQueue;
dispatch_async(dispatch_get_main_queue(), ^{
NSString *stringValue = [[[textField stringValue] copy] autorelease];
dispatch_async(bgQueue, ^{
// use stringValue in the background now
});
});
Run Code Online (Sandbox Code Playgroud)
如果我将该方法放在click处理程序中(将在autoreleasepool中调用),我将丢失stringValue,因为autoreleasepool将在点击事件后被销毁吗?
小智 9
在内部区域内?不,你不会失去这个价值.当__block在块内引用Objective-C对象变量(尚未声明为)并复制块时,将自动保留该对象.释放块时,该对象也将被释放.dispatch_async()负责复制和释放块.
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |