NSMutableDictionary的动态名称?

时间:2010-05-10 16:09:46

标签: iphone dynamic dictionary

我从txt文件中加载了很多信息,如果可能的话,我希望用txt的元素动态创建NSmutable字典。

例如,每个都是这样的: 元素的id |日期|文本

我要问的是相当于NSString stringWithFormat:。 我们可以为Mutable Dictionary做同样的事吗?

更实际的是,假设NSString *日期等于“23/12/2009”(欧洲)。我想创建一个名为23/12/2009的字典而不声明* 23/12/2009但是像dictionaryWithFormat:@“%@”,date];

我坚持这个,我甚至不知道是否可能。如果没有,最好的方法是什么?

谢谢大家

此致

3 个答案:

答案 0 :(得分:0)

要分隔字符串的组件,可以使用-[NSString componentsSeparatedByString:],它返回NSArray个字符串。要从字符串中获取日期,您可以使用-[NSDateFormatter dateFromString:]。如果您需要更复杂的解析,可以查看NSScanner

答案 1 :(得分:0)

听起来你想要一本字典词典。制作所需的每个字典,然后使用该日期将其插入另一个父字典,例如,作为其键。

答案 2 :(得分: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>