objective-c - 在objective-c中@符号代表什么?

我正在学习objective-c 并不断碰到@ 符号。它用于不同的场景,例如在字符串的开头或合成访问器方法。

objective-c 中的@符号是什么意思?

最佳答案

@ 字符不用于 C 或 C++ 标识符中,因此它用于以不会与其他语言的关键字冲突的方式引入 Objective-C 语言关键字。这使得语言的“目标”部分可以与 C 或 C++ 部分自由混合。

因此,除了极少数异常(exception),任何时候您在某些 Objective-C 代码中看到 @ 时,您看到的是 Objective-C 构造而不是 C 或 C++ 构造。

主要的异常(exception)是 idClassnilNil,它们通常被视为语言关键字,即使它们后面也可能有 typedef#define。例如,编译器实际上确实对 id 进行了特殊处理,它适用于声明的指针类型转换规则,以及是否生成 GC 写屏障的决定。

其他异常(exception)是​​ inoutinoutonewaybyref , 和 bycopy;这些用作方法参数和返回类型的存储类注释,以使分布式对象更高效。 (它们成为运行时可用的方法签名的一部分,DO 可以查看它以确定如何最好地序列化事务。)@property 声明中还有属性,copyretainassignreadonlyreadwritenonatomicgettersetter;这些仅在 @property 声明的属性部分中有效。

https://stackoverflow.com/questions/25749/

相关文章:

ios - 如何设置一个简单的委托(delegate)来在两个 View Controller 之间

objective-c - NSInvocation 傻瓜?

objective-c - Swift References 中的 _ 下划线代表什么?

ios - 较小时 UIScrollView 的中心内容

iphone - 从实例中获取类的名称

objective-c - "FOUNDATION_EXPORT"与 "extern"

objective-c - Objective-C 中可为空、__nullable 和 _Nulla

ios - 使用 AVFoundation AVPlayer 循环播放视频?

ios - 以编程方式调用电话

iphone - 如何在 Objective-C 2.0 中将方法标记为已弃用?