NS_ENUM为NSNumber,带“@”

时间:2016-05-18 23:53:35

标签: objective-c enums

以下是真的。

NSNumber *a= @90;

但是,如果我在NS_ENUM中使用NSInteger并使用“@”前缀,则在程序中显示“Unexpected'@'”

typedef NS_ENUM(NSInteger,Names){John=1};

NSNumber *a= @John;

1 个答案:

答案 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]);