【发布时间】:2019-03-08 16:09:28
【问题描述】:
我正在尝试将目标 c 函数转换为 swift 函数。
+(NSString *)extractNameWithDictionary:(NSDictionary *)dictionary
{
NSDictionary *assets = dictionary[@"assets"];
NSDictionary *item = dictionary[@"item"];
NSArray *facilityAssets = item[@"assets"];
NSDictionary *facilities = facilityAssets[0];
NSDictionary *asset = assets[facilities[@"content"]];
return asset[scs_name] ? : @"";
}
到
func extractNameWithDictionary(dictionary: [AnyHashable : Any]) -> String {
guard let assets = dictionary["assets"] as? [AnyHashable : Any],
let item = dictionary["item"] as? [AnyHashable : Any],
let facilityAssets = item["assets"] as? [Any],
let facilities = facilityAssets[0] as? [AnyHashable : Any],
let asset = assets[facilities["content"]] else { return "" }
return asset[scs_name] ?? ""
}
但在最后一个常量中:let asset = assets[facilities["content"]] 我得到:
无法使用“Any?”类型的索引为“[AnyHashable : Any]”类型的值下标
有什么帮助吗?
【问题讨论】:
-
scs_nameis not here 我想它的类型是String
标签: arrays swift dictionary nsdictionary