子类的简单列表

Posted

技术标签:

【中文标题】子类的简单列表【英文标题】:Simple list of sub category 【发布时间】:2009-11-05 15:41:11 【问题描述】:

我有一个分类列表:

<array>
<dict>
    <key>part</key>
    <string>up</string>
    <key>house</key>
    <array>
        <dict>
            <key>name</key>
            <string>name1</string>
            <key>theme</key>
            <string>theme1</string>
            <key>image</key>
            <string>image1.png</string>
        </dict>
    </array>
</dict>
<dict>
    <key>part</key>
    <string>down</string>
    <key>house</key>
    <array>
        <dict>
            <key>name</key>
            <string>name2</string>
            <key>theme</key>
            <string>theme4</string>
            <key>image</key>
            <string>image2.png</string>
        </dict>
        <dict>
            <key>name</key>
            <string>name3</string>
            <key>theme</key>
            <string>theme2</string>
            <key>image</key>
            <string>image3.png</string>
        </dict>
    </array>
</dict>

但我也想有一个只有所有名字列表的数组。 我试过NSArray* allSecretsWithDuplicates = [data valueForKeyPath:@"part.name"]; 问题是它返回一个字典数组。

【问题讨论】:

【参考方案1】:

您只需要自己遍历结构 - 编写一个接收字典的方法,获取所有键的值,并在找到数组时为数组中的每个字典再次调用自身。当它遇到一个名为“name”的键时,它会将值存储到一个类本地可变数组中,或者一个你传递给你自己的可变数组中。

【讨论】:

以上是关于子类的简单列表的主要内容,如果未能解决你的问题,请参考以下文章

mypy:创建一个接受子类实例列表的类型

只用@property定义一个属性speed,子类不能直接用_speed,需要在interface的成员变量列表里写上_speed

从超类列表中提取给定子类的元素

在 .NET 3.5 中使用反射生成子类列表

Python - 追加到嵌套在 dict 子类中的列表

存储类列表并通过在 C++ 中进行子类化来专门化一个函数?