Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 修改标志:NSInteger足够了吗?_Objective C_Xcode_Cocoa - Fatal编程技术网

Objective c 修改标志:NSInteger足够了吗?

Objective c 修改标志:NSInteger足够了吗?,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,NSInteger是否足以跟踪修改器标志?(cmd/alt/ctrl等) 我注意到,在一个事件上,它返回一个NSInteger(无符号)([theEvent modifierFlags]),而不是NSInteger,但是从我的测试来看,当我将修改器掩码保存在NSInteger中时,它似乎工作得很好 我需要一个NSInteger,因为我正在将修改器掩码保存为某些控件的标记。NSInteger和NSInteger的大小相同(即相同的位数)。不同之处在于,在执行算术等运算时,这些位是否被视为代表有符号

NSInteger是否足以跟踪修改器标志?(cmd/alt/ctrl等)

我注意到,在一个事件上,它返回一个NSInteger(无符号)([theEvent modifierFlags]),而不是NSInteger,但是从我的测试来看,当我将修改器掩码保存在NSInteger中时,它似乎工作得很好


我需要一个NSInteger,因为我正在将修改器掩码保存为某些控件的标记。

NSInteger和NSInteger的大小相同(即相同的位数)。不同之处在于,在执行算术等运算时,这些位是否被视为代表有符号或无符号数字。如果您仅使用按位运算来处理数字,则这并不重要。也就是说,您应该使用与所讨论的方法返回的类型相同的类型,在本例中为nsuiger。此处使用无符号的原因是,当所讨论的值实际上是一组独立设置/清除的位时,该值具有符号位在概念上没有意义。

NSInteger和NSInteger的大小相同(即相同的位数)。不同之处在于,在执行算术等运算时,这些位是否被视为代表有符号或无符号数字。如果您仅使用按位运算来处理数字,则这并不重要。也就是说,您应该使用与所讨论的方法返回的类型相同的类型,在本例中为nsuiger。这里使用无符号位的原因是,当所讨论的值实际上是一组独立设置/清除的位时,该值有符号位在概念上没有意义。

正如Andrew所说,我只想添加一些东西。 如果你使用的是iOS 6中的位标志,他们引入了一个新的宏,这似乎是新的“苹果方式”

typedef NS_选项(NSInteger、CustomType){

正如安德鲁所说,我只想补充一些东西。 如果你使用的是iOS 6中的位标志,他们引入了一个新的宏,这似乎是新的“苹果方式”

typedef NS_选项(NSInteger、CustomType){

kCmdKey=1这与问题没有直接关系(他似乎没有定义自己的标志),但是+1,因为这些新的宏非常有用,而且似乎还没有广为人知。这与问题没有直接关系(他似乎没有定义自己的标志),但是+1,因为这些新的宏非常有用,而且似乎还没有广为人知。
typedef NS_OPTIONS(NSInteger, CustomType) {
    kCmdKey = 1 << 0,
    kAltKey = 1 << 1,
    ctrlKey = 1 << 2,
};