gpt4 book ai didi

ios - 如何比较 NSDictionary 和 String 的值

转载 作者:行者123 更新时间:2023-11-30 14:07:09 24 4
gpt4 key购买 nike

我有两个 orgunit_idtest["orgunit_id"]API.loginManagerInfo.orgUnit,我想对其进行比较。问题是变量有不同的类型。 test["orgunit_id"] 是一个 NSDictionary 的值,另一个是一个 String。我尝试了多种方法将其转换为整数,但没有成功。

代码:

if(!orgUnits.isEmpty){
print(orgUnits) //See at console-output

for test: NSDictionary in orgUnits {

println(test["orgunit_id"]) //See at console-output
println(API.loginManagerInfo.orgUnit) //See at console-output

if(Int(test["orgunit_id"]? as NSNumber) == API.loginManagerInfo.orgUnit?.toInt()){ // This condition fails
...
}
}
}

输出:

[{
name = Alle;
"orgunit_id" = "-1";
shortdescription = Alle;
}, {
name = "IT-Test";
"orgunit_id" = 1;
shortdescription = "";
}]
Optional(-1)
Optional("-1")

编辑:以下是 API.loginManagerInfo.orgUnit 的定义: var orgUnit:String?

最佳答案

使用 if let 安全地解开您的值并对结果进行类型转换。

如果 test["orgunit_id"] 是一个可选 Int 并且如果 API.loginManagerInfo.orgUnit 是一个可选字符串:

if let testID = test["orgunit_id"] as? Int, let apiIDString = API.loginManagerInfo.orgUnit, let apiID =  Int(apiIDString) {
if testID == apiID {
// ...
}
}

考虑到字典中的内容,您可能必须调整此示例,但您明白了:安全地解开可选值并对其进行类型转换(使用 if let ... = ... as? ...) 或在比较之前对其进行转换(使用 Int(...))。

关于ios - 如何比较 NSDictionary 和 String 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32229634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com