- Objective C 什么是 *__strong*?

  显示原文与译文双语对照的内容
50 1

有一个方法:

- (void)doSmth:(NSString *__strong*)str {
 NSLog(@"%@", *str);
}

__strong follow方法参数的类follow什么意思 does?为什么有两个星号?

时间:原作者:0个回答

71 2

两个星号表示指向指针的指针。

__strong__weak 相反,你现在应该已经知道了。这意味着我们在这里讨论的是一个强大的引用。当我们保持这个引用时,对象将不会被释放。

我们还需要知道 __strong Type *varName 在技术上是错误的( 虽然它工作,几乎每个人都使用它) 。正确的语法是Type * __strong varName

你的语法是指向 NSString的强引用的指针。这意味着当从方法返回一个对象时,必须有 release 调用来正确分配对象。

请查看相关问题:NSError和__autoreleasing插件以及官方文档:正在转换到 arc

原作者:
...