0
我有過這樣的代碼已經被打破了,它不僅是直到最近我才知道這是無效的:如何將([theEvent modifierFlags]&NSCommandKeyMask)的結果轉換爲BOOL?
BOOL alwaysDrawGraphic = ([theEvent modifierFlags] & NSAlternateKeyMask);
if(alwaysDrawGraphic)
{
NSLog(@"Hey");
}
由於位運算&
的結果,不返回BOOL 。
所以我想我可以用lldb
到po ([theEvent modifierFlags] & NSAlternateKeyMask)
,但我得到這個錯誤:
error: use of undeclared identifier 'NSAlternateKeyMask'
error: 1 errors parsing expression
於是我試着只是NSLog
值時,我有命令鍵按下,
NSLog(@"%lu", ([theEvent modifierFlags] & NSCommandKeyMask));
Xcode糾正了我,讓我知道該值是一個unsigned long
。但是,當它退出時,我得到這個lu
:1048576
如果命令鍵爲未按時,它打印0
,正如你所期望
所以我的問題是,什麼是價值1048576
我我正在接受?
如何將它轉換爲BOOL
以便我可以在同一方法中多次重複使用它?
比特位置要清楚'alwaysDrawGraphic'將'YES '如果'NSAlternateKeyMask'中的所有標誌都設置在'modifierFlags'中。 – rmaddy
只有一個標誌(位)。掩碼「0x80000」(524288)忽略除「19」這個「NSAlternateKeyMask」位外的所有「0」位。 – vadian