0
我有一個UISwitch在CoreData中將BOOL設置爲1或0。但是,當用戶使用交換機加載視圖時,核心數據會將交換機設置爲1(開啓),但交換機仍然顯示。以下是代碼。注意:當您進入和退出應用程序時,開關會正確顯示,但是如果您關閉並關閉手機,或者停止並啓動iPhone模擬器,它將顯示。有人可以幫忙嗎?UISwitch ViewDidLoad設置在
「setSwtich」是對UISwitch的方法,「名單」是UISwitch的名稱和「指標」是核心數據事件屬性的BOOL存儲英寸
-(IBAction)setSwitch
{
if (list.on)
{
[event setIndicator:[NSNumber numberWithInt:1]];
NSError *error;
if (![managedObjectContext save:&error])
{
NSLog(@"there was an error in Save");
}
}
else [event setIndicator:[NSNumber numberWithInt:0]];
NSError *error;
if (![managedObjectContext save:&error])
{
NSLog(@"there was an error in Save");
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
if (event.indicator == [NSNumber numberWithInt:1]) {
[list setOn:YES animated:NO];
}
else nil;
}
-(void)viewDidAppear:(BOOL)animated
{
if (event.indicator == [NSNumber numberWithInt:1]) {
[list setOn:YES animated:NO];
}
}
- (void)viewDidUnload
{
if (list.on) {
[event setIndicator:[NSNumber numberWithInt:1]];
}
NSError *error;
if (![managedObjectContext save:&error])
{
NSLog(@"there was an error in Save");
}
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
-(void)viewDidDisappear:(BOOL)animated
{
if (list.on) {
[event setIndicator:[NSNumber numberWithInt:1]];
}
NSError *error;
if (![managedObjectContext save:&error])
{
NSLog(@"there was an error in Save");
}
}
此外,僅僅是明確的,我知道的核心數據元素被記錄並正確保存;創建列表指標工作的效果,這是純粹是在開關上顯示ON/OFF,這是問題所在。 – Eric 2011-05-01 16:39:06