2010-05-10 33 views
0

我從一個txt文件加載了很多信息,如果可能的話,我想用txt的元素動態創建NSmutable字典。NSMutableDictionary的動態名稱?

例如,每個都是這樣的: id元素|日期|文字

我問的是相當於NSString stringWithFormat :. 我們可以對Mutable Dictionary做同樣的事嗎?

爲了更實際,我們假設NSString *日期等於「2009年12月23日」(歐洲)。我想創建一個名爲23/12/2009的字典,但不聲明* 23/12/2009,而只是像dictionaryWithFormat:@「%@」,date];

我被困在這個上,我甚至不知道它是否可能。如果不是,那麼解決這個問題的最好方法是什麼?

謝謝大家

問候

回答

0

要分隔字符串的組件,您可以使用-[NSString componentsSeparatedByString:],它返回一個字符串NSArray。要從字符串中獲取日期,您可以使用-[NSDateFormatter dateFromString:]。如果你需要更復雜的解析,你可以看看NSScanner

0

聽起來像你想要一本字典的詞典。製作你想要的每個字典,然後將它插入到另一個父字典中,使用該日期,例如作爲它的關鍵字。

+0

它已經做了別人,但我看不出怎麼辦那裏,而無需手動初始化每個字典,因爲我喜歡150個日期...... – Bruno 2010-05-11 07:45:23

0

您可以將txt文件改爲xml文件嗎?然後你可以調用dictionaryWithContentsOfFile:方法從文件中創建NSMutableDictionary。

通過在xml文件中定義數組並使用NSArray的arrayWithContentsOfFile方法讀取它,可以在xml文件中包含多個字典。或者您可以在xml文件中使用字典詞典,這就是我在ClockSmith應用程序中用來跟蹤所有時鐘組件及其設置。這是一個xml文件的摘錄給你一個想法。它是用NSDictionary的writeToFile:atomically:方法創建的。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>290900405.808</key> 
    <dict> 
     <key>Description_Key</key> 
     <string>Digital Clock - AM/PM</string> 
     <key>NIB_Name_Key</key> 
     <string>ClockDigital12Hr</string> 
     <key>Option_Value_Key</key> 
     <integer>3</integer> 
    </dict> 
    <key>290900405.810</key> 
    <dict> 
     <key>Description_Key</key> 
     <string>One Day Calendar</string> 
     <key>NIB_Name_Key</key> 
     <string>CalendarDay</string> 
     <key>Option_Value_Key</key> 
     <integer>0</integer> 
    </dict> 
</dict> 
</plist> 
+0

這可能是一個很好的解決方案,但我想每個日期,父母和孩子都有一本字典,所以我仍然需要輕鬆創建許多字典 – Bruno 2010-05-11 07:46:51