2013-04-10 188 views
1
#import "someClass.h" 

@implementation someClass 

- (NSInteger *)checkWakeOnLan { 
    SCDynamicStoreRef ds = SCDynamicStoreCreate(kCFAllocatorDefault, CFSTR("myapp"), NULL, NULL); 
    CFDictionaryRef dr = SCDynamicStoreCopyValue(ds, CFSTR("State:/IOKit/PowerManagement/CurrentSettings")); 
    CFNumberRef wol=CFDictionaryGetValue(dr, CFSTR("Wake On LAN")); 
    CFRelease(dr); 
    CFRelease(ds); 

這裏我的問題,如何CFNumberRef轉換爲NSInteger的, 我一次又一次tryed,但有隨時 「使得整數指針,未投」轉換一個CFNumberRef到NSInteger的

NSInteger *value = [... ?]; 
    return value; 
} 

- (IBAction)doStuff:(NSButton *)sender { 
    [myBevelButton setState:[self checkWakeOnLan]]; //setState takes NSInteger 
    //myBevelButton defined elsewhere, shows different icons 
} 

@end 

回答

2

使用此:

//假設你要WOL轉換爲NSNumber的,然後到NSInteger的

NSNumber *nsnumber = (NSNumber*)wol; 
NSInteger value = [nsnumber integerValue]; 

* 注意:你很少需要一個NSInteger指針。在你的情況下,你可以很容易地使用NSInteger。您還需要將方法更改爲- (NSInteger)checkWakeOnLan

+0

非常感謝。很簡單,這是! :) – 2013-04-10 09:24:22

+0

是的,只需要瞭解錯誤說明:) – 2013-04-10 09:25:00