Objective-c:返回类型__strong const char*是什么意思?

Car*_*loS 9 objective-c

在阅读基金会的标题时,我发现了这个:

- (__strong const char *)UTF8String NS_RETURNS_INNER_POINTER;   
// Convenience to return null-terminated UTF8 representation
Run Code Online (Sandbox Code Playgroud)

这是来自NSString.hiOS 7.1 SDK,__strong const char *这里的意思是什么?

我最困惑的是"__strong"这里.

Nik*_*uhe 5

Foundation在iOS和Mac OS之间共享.在Mac OS上,有一段时间存在垃圾收集内存管理系统.它已被弃用,在Mac OS上不再受支持.它从未在iOS上使用过.

GC用作__strong普通指针类型声明的修饰符,使指向内存的可收集.这种用法__strong在ARC没有意义或手动保留/释放代码.声明没有警告的事实可能只是因为clang在系统标题中没有发出警告.

  • `__strong`在ARC中也有意义:http://clang.llvm.org/docs/AutomaticReferenceCounting.html (2认同)
  • 嗯,当然它在ARC中有意义.但是ARC下的使用被限制为"可保留的对象类型".在这种情况下,普通指针用`__strong`和**装饰,这**在ARC中没有意义. (2认同)