2010-02-08 56 views
1

任何人都可以幫我添加孩子到plist嗎?以編程方式添加子鍵到plist

我想我想記錄從plist行的索引,然後說明哪個索引行也寫了關鍵。 我不知道如何說如果密鑰將是一個字符串,字典或數組。

以下是關於向root添加密鑰的另一個問題的代碼。

NSString *path = @"path/to/some/file"; 
NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:path] mutableCopy]; 
[plist setObject:@"foo" forKey:@"aKey"]; 
[plist writeToFile:path atomically:YES]; 
[plist release]; 

任何幫助將非常感激:)

回答

2

注:我仍然需要幫助,但所取得的進展。

下面的代碼將添加的plist陣列條目名稱「喜」與孩子們: 項目0,test1的 項目1,測試2

NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy]; 
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease]; 
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil]; 
[plist setObject:newArray forKey:@"Hi"]; 
[plist writeToFile:databasePath atomically:YES]; 
[plist release]; 

我覺得做一本字典項將工作一樣的陣列項目。 我仍然不確定如何添加entires到兒童雖然:/

+1

只是一個側面說明:您是分配和初始化newArray兩次。第二次你這樣做,你實際上是不變的。這可能不是你的意圖。只是:NSMutableArray * newArray = [NSMutableArray arrayWithObjects:@「1」,@「2」,@「3」,nil];會給你一個完美的自動釋放可變數組。或者,如果你想讓數組不可變(或者不打算改變它),可以在NSArray上調用相同的arrayWithObjects:而不是NSMutableArray。 – Rab 2011-01-05 03:15:18

1

這裏是 如果你做任何事情如下,你可以寫出一個plist。 詞典 - >排列 - >字符串 詞典 - >詞典 - >詞典 - >陣列 - >字符串 等等

下面是創建一個包含含2串一「喜」陣列「行」字典代碼命名0項與名稱「測試1和測試2

NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:databasePath] mutableCopy]; 
NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease]; 
NSMutableDictionary *newDictionary = [[[NSMutableDictionary alloc] init] autorelease]; 
newArray = [NSArray arrayWithObjects:@"test1", @"test2", nil]; 
newDictionary = [NSDictionary dictionaryWithObject:newArray forKey:@"Hi"]; 
[plist setObject:newDictionary forKey:@"Row"]; 
[plist writeToFile:databasePath atomically:YES]; 
[plist release]; 

此,如果你嘗試寫到哪1已經存在的項目將崩潰。任何人都知道我是怎麼給cn的字符串鍵(即0項第1項,第1項等...)一個名字?

1

我相信字符串鍵名不能改變在一次給鑰匙和對象唯一方法是使用 NSDictionary的

[NSArray arrayWithObjects:dictionary1, dictionary2]; 

希望這有助於

相關問題