我的資源包中有一個plist,我通過文件夾引用進行復制。由於某種原因,我編輯的&保存(在Xcode中)plist不會被複制/更新,直到我刪除應用程序。否則,舊的plist(在編輯之前)會被複制過來,即使我刪除了該應用程序。數據是否遺留下來?構建&運行:plist沒有更新
plist經常編輯,因此調試非常費時。我如何確保plist被正確複製?
我的資源包中有一個plist,我通過文件夾引用進行復制。由於某種原因,我編輯的&保存(在Xcode中)plist不會被複制/更新,直到我刪除應用程序。否則,舊的plist(在編輯之前)會被複制過來,即使我刪除了該應用程序。數據是否遺留下來?構建&運行:plist沒有更新
plist經常編輯,因此調試非常費時。我如何確保plist被正確複製?
你正在複製文檔文件夾中的plist文件嗎?如果您正在複製該文件,那麼您必須在每次啓動應用程序時從iPhone模擬器中刪除該應用程序。
您也可以做一件事..您可以在每次啓動應用程序時將文件複製到文檔文件夾中。 由於文檔文件夾的內容只能通過從模擬器/設備中刪除應用程序來刪除。
然後沒有必要重新啓動模擬器/設備和xcode。
plist複製到資源包中,而不是在Documents中。所以我希望資源數據在應用程序被刪除時被刪除,但是單獨刪除應用程序不會。 – Morrowless 2011-05-16 06:42:03
否來自資源的數據無法刪除,您必須手動刪除它。順便說一句:如果你沒有複製文件中的文件,那麼你將無法編輯它。 – Saurabh 2011-05-16 06:43:46
我應該清楚,編輯是在Xcode中完成的,而不是運行時。 – Morrowless 2011-05-16 06:49:11
這是一個laaate的答案;但是,嘿,OP沒有標記正確的答案,所以這裏是我的解決方案。我創建了兩個屬性列表。第一個是調試信息,如常數,字符串和布爾值。我把這個房產名單叫做SETTINGS.plist
。我的另一個plist是我用來保存遊戲數據的。由於SETTINGS plist是我通過xcode接口更新的,我每次運行應用程序時都會更新它。
-(void)setUpPlist{
listPath = [[self docsDir] stringByAppendingPathComponent:@"SETTINGS.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath:listPath]) {
[[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil];
}
else {
[[NSFileManager defaultManager] removeItemAtPath:listPath error:nil];
[[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"SETTINGS" ofType:@"plist"] toPath:listPath error:nil];
}
savedData = [NSMutableDictionary dictionaryWithContentsOfFile:listPath];
}
-(NSString *)docsDir{
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
}
這裏,listPath是NSString
類型的,並且是savedDate NSMutableDictionary
類型。希望這可以幫助。
卸載並重新安裝在調試環境中解決了我的問題...謝謝 – 2014-03-27 11:21:09