如何在Objective-C中创建NSDictionary?

vky*_*vky 19 objective-c nsdictionary nsmutabledictionary ios

我想创建一个类似这样的NSDictionary:

"zones": 
{
    {
        "zoneId": "1",
        "locations": 
        {
            {
                "locId": "1",
                "locZoneId": "1",
                "locLatitude": "33.68506785633641",
                "locLongitude": "72.97488212585449"
            },
            {
                "locId": “2”,
                "locZoneId": "1",
                "locLatitude": "33.68506785633641",
                "locLongitude": "72.97488212585449"
            },
            {
                "locId": “3”,
                "locZoneId": "1",
                "locLatitude": "33.68506785633641",
                "locLongitude": "72.97488212585449"
            },
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何创造.

Mar*_*rco 55

您应该使用数组和字典的组合.

字典初始化如下:

NSDictionary *dict = @{ key : value, key2 : value2};
Run Code Online (Sandbox Code Playgroud)

数组初始化如下:

NSArray *array = @[Object1, Object2]
Run Code Online (Sandbox Code Playgroud)


Han*_*son 9

Objective-C 是创建字典的正确类型化方式。

下面有一个强类型的keyasNSStringvalueas NSNumber

您应该始终在可能的地方设置类型,因为通过将其设置为强类型,编译器将阻止您犯常见错误,并且它在 Swift 中工作得更好:

NSDictionary<NSString *, NSNumber *> *numberDictionary;
Run Code Online (Sandbox Code Playgroud)

但是在上面的例子中,我们需要在字典中存储一个数组,所以它将是:

NSDictionary<NSString *, id> *dataDictionary;
Run Code Online (Sandbox Code Playgroud)

这允许值是任何类型。