2014-12-07 24 views
0

我必須在plist中保留比賽和當前日期。我創建了一個字典,兩個數組:將積分和當前日期添加到plist

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    dateArray=[[NSMutableArray alloc]init]; 
    scoreArray=[[NSMutableArray alloc]init]; 
    [self.tableView setDelegate:self]; 
    [self.tableView setDataSource:self]; 
    [self getDate]; 

    NSString *path = [[NSBundle mainBundle] pathForResource:@"score" ofType:@"plist"]; 
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path]; 
    int lastItemIndex = scoreArray.count; 
    [scoreArray insertObject:[dict objectForKey:@"scoreElements"] atIndex:lastItemIndex]; 
} 

-(IBAction) saveData 
{ 
    NSString *plistPath =[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"Score.plist"]; 
    NSMutableArray* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 

    [plistDict setValue:self.scoreLabel.text forKey:@"scoreElements"]; 
    [plistDict writeToFile:plistPath atomically: YES]; 
} 

此代碼是好只爲最後一場比賽pleyed,但我想填充的tableView也與我如何能做到這一點的老scores.Any想法?

+1

你爲什麼不使用的存儲系統,而不是plist文件呢? – 2014-12-07 13:23:42

+0

使用'NSCoder'支持添加數據模型並使用'NSKeyedArchiver'將數據模型保存到Documents目錄中。 Yo將能夠直接訪問分數,日期和其他項目或內部。作爲一個額外的好處,調試將變得更容易。 – zaph 2014-12-07 13:36:59

+0

在plist中放置一個數組來保存數據。另外請注意,您不能在應用程序捆綁軟件中編寫您的plist文件。這可能在模擬器中工作,但它不會在真實設備上工作。 – rmaddy 2014-12-07 17:31:02

回答

-1

您可以使用NSUserDefaults來存儲內容並在以後檢索它。 退房在蘋果關於這個類的引用:

nsuserdefault apple

+0

不要使用'NSUserDefaults',它的設計不是數據模型。 – zaph 2014-12-10 12:13:03