这是什么Objective-C / XCode批注//

查看iOS上GCM通知的示例代码: https : //github.com/googlesamples/google-services/blob/master/ios/gcm/GcmExample/AppDelegate.m#L31

.... // [START register_for_remote_notifications] - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // [START_EXCLUDE] .... // [END_EXCLUDE] 

// [START_EXCLUDE] // [END_EXCLUDE]的用途是什么? 它是一个约定的一部分,是Objective C的一部分还是xCode的一部分?

它是一个约定的一部分,是Objective C的一部分还是xCode的一部分?

以上都不是。 就编译器而言,这些只是注释 – 它们不是任何标准Objective-C约定的一部分,它们不是语言的一部分,编译器可以理解的指令或者Xcode可以理解的指令。

从回购中的一些提交注释中, [START ...][END ...]似乎是对某种预处理器的指示,但是在构build项目时不会触发预处理器。 也许他们被项目外部的工具所使用,可以用来生成具有特定选项集的示例代码。 如果你仔细查看代码,你会发现类似的指令,比如:

 // [START start_gcm_service] ... // [END start_gcm_service] 

而这些似乎都包含了可能从代码中删除的大量代码。

请访问https://developers.google.com/cloud-messaging/ios/start ,注意该页面上的所有代码片段是如何完全对应[START][END]指令中的代码的?

是的,谷歌使用一个内部工具来parsing他们的示例项目源代码,以便从HTML文档页面自动引用代码。