NSButton标记ID返回超过7的不准确值

时间:2015-02-07 04:23:58

标签: macos cocoa osx-yosemite appkit

我有一个25个NSButtons的网格。我尝试在1-25之间设置每个标签,并将它们链接到一个IBAction,包含:

- (IBAction)buttonClicked:(id)sender {
    NSLog(@"Clicked button %lo.", [sender tag]);
}

但是,我遇到了问题。按钮1-7工作正常,但第8个返回10,第9个返回11,第10个返回12.我通过实验将按钮的标签设置为88,然后返回130.这是一个错误,或者我是以错误的方式解决这个问题?

2 个答案:

答案 0 :(得分:3)

您的按钮值正确,您只是用八进制格式(%lo中的“ o”)而不是十进制打印错误的值。这就是为什么您的8打印为10的原因-八进制表示为8。 130是八进制,而88是十进制:

答案 1 :(得分:1)

您应该使用unsigned int%u )格式,而不是long%lo ):

NSLog(@"Clicked button %u.", [sender tag]);
  • 根据您的代码格式,您可以使用%o。对整数进行处理就是增加数字。