標籤:熊貓 點贊 狀態 ack csdn 元素 nes tin undle
大熊貓豬·侯佩原創或翻譯作品.歡迎轉載,轉載請註明出處.
假設認為寫的不好請多提意見,假設認為不錯請多多支援點贊.謝謝! hopy ;)
在Xcode7.2中設定App的settings bundle時發現當bundle元素類型為Toggle Switch時,在App裡取不到其變化值.
當中Toggle Switch設定例如以下:
在代碼中以例如以下方式讀取其值:
BOOL isWarp = [defaults boolForKey:kWarpDrive];_warpDriveLabel.text = isWarp ?
@"Engaged":@"Disabled";
當中kWarpDrive定義例如以下:
#define kWarpDrive @"warp"
奇怪的是在settings中改變該開關button的狀態,並不能在App中反應出來…確切的說,App中不管開關處在何種狀態,總是讀出NO值.
該App的settings bundle還有其它類型的元素,比方文本或多選欄,其它的元素都能夠正常讀出改變的值,只有Toggle Switch不能夠.
遂改變策略在,App啟動時先注冊其相應的值:
+(void)regDefaultsFromSettingsBundle{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSDictionary *dict = @{kWarpDrive:@(YES)}; [defaults registerDefaults:dict]; [defaults synchronize];}
注意我僅僅注冊了kWarpDrive相應的值,其它的值並沒有管.
然後在App中能夠正常讀出開關改變的值了,That’s All!!!
iOS的settings bundle中開關button(Toggle Switch)取不到值的問題