2010-09-06 36 views
0

正如所有通常會問這樣的問題的人一樣,我是iPhone SDK編程中的新手,我花了很多時間來自己找到解決方案。 因此,我需要將大量diff數據類型(bool,string,int,float,double,int數組,double數組和指針數組)的應用程序數據保存到文件中。有很多形式的字段,應用程序設置等。我需要保存任何用戶退出應用程序,或者它意外終止。用戶可以使用與字段一樣多的表單,因爲這是可能的。需要文件才能在其他設備上打開包含所有填充表單和應用程序集的項目。 我的麻煩是,我無法找到以什麼方式應對所有要提交的數據。我嘗試了兩種不同的方式。第一:使用表單的數據填充數組,爲每個表單填充NSMutableArray與這樣的數組。但對於NSMutableArray有一個方法(void)addObject:(id)anObject,並且我沒有找到如何從每個數組(或任何其他)獲取該(id)anObject來添加項目。 第二次嘗試使用:NSMutableData。同樣的麻煩:填充我的數據我需要將它們轉換爲數據((void)appendData:(NSData *)otherData)。在這兩種情況下,這些類的對象都無法用我的數據正確填寫。我無法將其保存到文件中。 也許有一些更好的解決方案?對於任何幫助都會非常不禮貌。保存不同類型的iPhone應用程序變量時遇到的問題

+0

亞歷克斯,還有,我們可以得到一些換行符,使這更容易閱讀? :) – makdad 2010-09-06 08:02:21

回答

1

NSNumber通常是去基本的東西(整數,布爾,和雙/浮動/等)的方式。例如:

NSNumber *aBool = [NSNumber numberWithBool:YES]; 
NSNumber *aFloat = [NSNumber numberWithFloat:1.0f]; 

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
[settings setValue:aBool forKey:@"some_key"]; 

琴絃只需將它添加到NSUserDefaults的,因爲他們已經是對象(符合NSCoder,我相信),併爲NSArrays,只需使用將writeToFile:方法:

NSArray *someArray = [NSArray arrayWithObjects:@"foo",@"bar",@"etc",nil]; 
[someArray writeToFile:@"filename" atomically:YES]; 
+0

感謝您的快速回答。似乎應該是有幫助的,但我找到了我的路。附:真的很抱歉 - 我剛剛忘了這個問題 – AleX 2012-02-07 09:52:58

相關問題