如果 #available(iOS 9, *) 不工作
if #available(iOS 9, *) Not Working
我发现我的代码中有一行不喜欢在 iOS8 上成为 运行,但有一种方法可以在 iOS8 上使用不同的逻辑执行相同的任务,那不喜欢 iOS9。
我已经使用 if #available(iOS 9, *)
在 iOS9 上执行我需要的代码,在 iOS8 上执行代码。但是,当 运行ning 调用函数几次后,iOS9 设备 运行 执行了它不应该执行的代码并崩溃了。我是否错过了设置 if #available(iOS 9, *)
的步骤?
代码如下
if #available(iOS 9, *) {
if(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!){
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
} else {
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
let systemVersion = UIDevice.currentDevice().systemVersion
if((Double)(systemVersion) > 9.0)
{
if(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!){
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
}
else
{
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
available
检查应该有效。由于要排除的代码在两种情况下都是相等的(除了 if
),问题很可能是 if
条件(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!
)是 true
,当你认为它应该是 false
.
尝试将日志添加到两个 #available
块,您很可能会看到,第二个块(iOS 8 块)永远不会在 iOS 上执行9 台设备。
我发现我的代码中有一行不喜欢在 iOS8 上成为 运行,但有一种方法可以在 iOS8 上使用不同的逻辑执行相同的任务,那不喜欢 iOS9。
我已经使用 if #available(iOS 9, *)
在 iOS9 上执行我需要的代码,在 iOS8 上执行代码。但是,当 运行ning 调用函数几次后,iOS9 设备 运行 执行了它不应该执行的代码并崩溃了。我是否错过了设置 if #available(iOS 9, *)
的步骤?
代码如下
if #available(iOS 9, *) {
if(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!){
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
} else {
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
let systemVersion = UIDevice.currentDevice().systemVersion
if((Double)(systemVersion) > 9.0)
{
if(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!){
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
}
else
{
self.otherChats[loc].append(messageObj)
self.Notfication.postNotificationName(_Chat.Notification.DidGetMessage, object: nil)
}
available
检查应该有效。由于要排除的代码在两种情况下都是相等的(除了 if
),问题很可能是 if
条件(self.otherChats[loc].last?.timestamp! != messageObj.timestamp!
)是 true
,当你认为它应该是 false
.
尝试将日志添加到两个 #available
块,您很可能会看到,第二个块(iOS 8 块)永远不会在 iOS 上执行9 台设备。