我已经编写了一个新的可可触摸类Request&ApprovalViewController
,并在创建后发现类名被Request_ApprovalViewController
中的.h
替换为.m
文件。
Request&ApprovalViewController.h
代码
#import <UIKit/UIKit.h>
@interface Request_ApprovalViewController : UIViewController
@end
Request&ApprovalViewController.m
代码
#import "Request&ApprovalViewController.h"
@interface Request_ApprovalViewController ()
@end
@implementation Request_ApprovalViewController
@end
我的问题是为什么&
被_
取代了?
它是一种编写特殊类型的Objective-C代码(如类别,扩展或协议)的形式吗?
答案 0 :(得分:1)
您使用Xcode创建了该文件,并且它理解&
不是类名中的有效字符,因此它将其更改为合理的字符,以便它能够编译代码
答案 1 :(得分:1)
由于Objective-Cs与C的关系,Ampersand是一个保留符号,用于获取变量的地址。
答案 2 :(得分:1)
我的问题是这个
取代&
如何被_
更好的问题是它被替换的原因。原因是Objective-C中的类,变量,方法等的名称必须是identifiers,即它们必须以字母或下划线开头,并且只包含字母,数字或下划线。 &
不是标识符中使用的合法字符。这就是为什么Xcode用下划线替换它。
请注意,文件的名称允许有&符号,因此Xcode会保持文件名不变。导入时,请使用
#import "Request&ApprovalViewController.h"
另请注意file names with +
, a special character, are commonly used for defining categories。