以下是真的。
NSNumber *a= @90;
但是,如果我在NS_ENUM中使用NSInteger并使用“@”前缀,则在程序中显示“Unexpected'@'”
typedef NS_ENUM(NSInteger,Names){John=1};
NSNumber *a= @John;
答案 0 :(得分:4)
您需要将John
括在括号中:
NSNumber *a = @(John);
如果值不是实际数字文字,则必须使用括号@
。当然,即使它是一个数字文字,你也可以使用括号。
全部有效:
NSNumber *a = @4;
NSNumber *a = @3.14;
NSNumber *a = @-6;
NSNumber *a = @(4);
NSNumber *a = @(4+5*3);
NSInteger magic = 42;
NSNumber *a = @(magic);
NSNumber *a = @([@"42" integerValue]);