我敢肯定的是,在主束寫是不可能的iOS ...例如像操作:寫入主包的目錄。它允許嗎?
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
.....something
[xmlData writeToFile:path atomically:YES];
爲什麼在Apple's documentation使用與此完全相同的代碼的第一個例子?
我敢肯定的是,在主束寫是不可能的iOS ...例如像操作:寫入主包的目錄。它允許嗎?
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
.....something
[xmlData writeToFile:path atomically:YES];
爲什麼在Apple's documentation使用與此完全相同的代碼的第一個例子?
的例子是針對OS X,這是不太有權限的iOS嚴格。
儘管如此,如果您能夠在Mac App Store應用程序包中更長時間地完成此操作(如果現在可以的話),我會感到很驚訝。
這可能是值得提供有關文檔的錯誤。
這不是鏈接到主包。這是資源文件夾的路徑,以及該文件夾中的plist。
因此函數名在編譯應用程序在主束pathForResource...
一切都是加密簽名。資源文件夾不是。你可以隨心所欲地書寫。
爲@jrturton
// we need to get the plist data...
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Symptoms" ofType:@"plist"];
NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
// add a new entry
NSDictionary *addQuestion = [[NSDictionary alloc] initWithObjectsAndKeys:@"Blank.png",@"Icon",
[NSString stringWithFormat:@"%i",r],@"ID",
[titleTextField text],@"Title",
[questionTextField text],@"Text",
qnType,@"Type",
@"1",@"Custom",
[NSArray arrayWithObjects:@"Yes",@"No",nil],@"Values",
[unitsTextField text],@"Units",
nil];
[dataArray addObject:addQuestion];
[addQuestion release];
// rewrite the plist
[dataArray writeToFile:plistPath atomically:YES];
因此,我如何選擇存儲文件?作爲在iTunes中呈現文件的功能的文檔文件夾...但庫路徑和資源路徑之間的區別是什麼? – MatterGoal 2011-12-21 11:51:39
我很確定這是錯的,儘管我找不到任何文件來支持我。資源文件夾是主包的一部分,不能在設備上修改。 – jrturton 2011-12-21 12:00:30
如果您嘗試在設備上執行此操作(由於模擬器應用程序未經過代碼簽名,它在模擬器中起作用),您將收到「操作不允許」錯誤。 – omz 2011-12-21 12:03:39
它有時會在iOS文檔中找到OSX的文檔...但這次它讓我感到驚訝......這將是一個可怕的錯誤,因爲@omz在模擬器中說它很棒!開發人員可能會錯誤地認爲在其應用程序中使用此方法... – MatterGoal 2011-12-21 12:31:41
爲什麼在設備上進行測試非常重要的另一個原因! – jrturton 2011-12-21 12:33:39