最近,我在高三,我感興趣的是爲iPhone應用程序。最近,我的一個應用程序出來了:NBlock。這是一款益智遊戲,它非常具有挑戰性。但是,它有一些問題。高分不會被保存。我被告知要使用plist。有小費嗎?如何在iOS的編程中使用的plist
回答
這個基於URL的方法:
// Get the URL for the document directory
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSURL *documentDirectoryURL = [[fileManager URLsForDocumentDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] objectAtIndex:0];
// Turn the filename into a string safe for use in a URL
NSString *safeString = [@"scores.plist" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// Create an array for the score
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithInt:score]];
// Write this array to a URL
NSURL *arrayURL = [NSURL URLWithString:safeString relativeToURL:documentDirectoryURL];
[array writeToURL:arrayURL atomically:YES];
對我來說,這似乎更清潔,更清晰的使用' - [NSURL URLByAppendingPathComponent:]'文件的URL,而不是相對URL。這將消除對路徑轉義百分比的需要,並且通常不易出錯。 –
我會避免使用的plist。到目前爲止,在應用程序中保存簡單數據的最簡單方法是NSUserDefaults
。
退房this tutorial關於如何使用NSUserDefaults
一個簡單的指南。當你完成寫作時,一定要確保synchronize
NSUserDefaults
。
如果你正在尋找一個更強大的(但更復雜的)的方式來保存數據,看看蘋果的指導使用Core Data
。
我認爲NSUserDefaults被推薦用於標準化的默認設置,您想要堅持與語言首選項等有關嗎? – cheznead
繼承人你想要什麼:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"scores.plist"];
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithInt:score]];
[array writeToFile:path atomically:YES];
,並加入新的成績在array
聲明做initWithContentsOfFile:@"scores.plist"
而不是init
。你可以選擇使用NSUserDefaults。
我會說下面的代碼將工作和漂亮的直線前進,除非自定義對象數據類型(它是一個不同的故事再次)使用:
NSString* plistPath = nil;
NSFileManager* manager = [NSFileManager defaultManager];
if ((plistPath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"PathTo.plist"]))
{
if ([manager isWritableFileAtPath:plistPath])
{
NSMutableDictionary* infoDict = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
[infoDict setObject:@"foo object" forKey:@"fookey"];
[infoDict writeToFile:plistPath atomically:NO];
[manager setAttributes:[NSDictionary dictionaryWithObject:[NSDate date] forKey:NSFileModificationDate] ofItemAtPath:[[NSBundle mainBundle] bundlePath] error:nil];
}
}
設置日期屬性可能有助於檢查最後一次分數何時更新。
- 1. 如何以編程方式使用plist?
- 2. 在iPhone編程使用的plist
- 3. 如何使用的plist XCode中填充的iOS 4的TableView
- 4. 如何在ios應用程序中保護默認plist文件
- 5. 的iOS:從plist中
- 6. Plist iOS中的NSPredicate
- 7. 閱讀plist文件。 iOS編程
- 8. 如何更新ios中的plist文件
- 9. 如何讀取plist中的iOS
- 10. .plist文件如何在iOS中工作
- 11. 如何在cocos2d和iOS中使用plist文件?
- 12. 在我的iOS應用程序中,如何從plist中讀取失敗?
- 13. 如何使用的plist
- 14. 如何在iPhone Xcode應用程序中編輯.plist文件?
- 15. 如何在iOS中編程使用音頻文件編寫MMS?
- 16. 如何從應用程序的plist中讀取plist
- 17. 在iOS程序中閱讀plist
- 18. 如何在.plist文件中的IOS中使用多個URL方案?
- 19. 我想要檢索的iOS設備的plist數據編程
- 20. 無法編輯程序生成的iOS的plist
- 21. 如何在iPhone中使用plist編寫多個數組?
- 22. 如果我使用plist,可以嗎? iOS
- 23. 如何以編程方式刪除plist?
- 24. 如何在android中使用plist?
- 25. 寫入的Plist在IOS 5.0.1
- 26. 編輯應用程序的.plist文件
- 27. 在ios平臺的數組字典中編輯Plist值
- 28. 在ios編程中使用three20框架
- 29. 如何以編程方式使用CustomFont的風格在IOS
- 30. iOS用Plist中的數據填充UITableView
你可以從閱讀[蘋果的plist教程](http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PropertyLists/QuickStartPlist/QuickStartPlist.html)開始。 – Jon7