小编Fli*_*Vir的帖子

为什么我不会在传递给dispatch_after()的块中使用指向self的弱指针?

我看过以下用过:

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    //code to be executed on the main queue after delay
    [self doSometingWithObject:obj1 andAnotherObject:obj2];
});
Run Code Online (Sandbox Code Playgroud)

但它不应该在块中使用弱自我吗?

__weak typeof(self) weakSelf = self;
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    //code to be executed on the main queue after delay
    [weakSelf doSometingWithObject:obj1 andAnotherObject:obj2];
});
Run Code Online (Sandbox Code Playgroud)

我对GCD和Blocks很新,并尝试找出最正确的用法.非常感谢对此的任何指导.

memory-management weak-references objective-c grand-central-dispatch objective-c-blocks

9
推荐指数
1
解决办法
1991
查看次数

Mac App Store 应用程序和标识符ForVendor

要唯一标识 iOS 6 及更高版本中的应用程序,请使用以下代码:

UIDevice.currentDevice().identifierForVendor
Run Code Online (Sandbox Code Playgroud)

有 Mac OSX 的等效程序吗?

macos cocoa mac-app-store

4
推荐指数
2
解决办法
2235
查看次数