如果用户iPhone属于某种型号,我试图只执行某段代码。我在iOS模拟器上进行测试,因此我使用iPhoneModel()
函数来获取模拟器的设备模型并将其打印到控制台并将其粘贴到compare()
函数中的if条件中。
func iPhoneModel() -> String {
var sysinfo = utsname()
uname(&sysinfo) // ignore return value
return NSString(bytes: &sysinfo.machine, length: Int(_SYS_NAMELEN), encoding: NSASCIIStringEncoding)! as String
}
func compare() {
if iPhoneModel() == "x86_64" {
print("It Worked!")
}
}
iPhoneModel()
函数应该返回一个相同的字符串,该语句应为true,但它是false。我甚至将两个字符串打印到控制台上,用自己的眼睛检查它们,它们看起来都是相同的,但计算机却不这么认为。有什么想法吗?
答案 0 :(得分:0)
我认为你可以删除空字符......
func iPhoneModel() -> String {
var sysinfo = utsname()
uname(&sysinfo) // ignore return value
var iPhoneModel = NSString(bytes: &sysinfo.machine, length: Int(_SYS_NAMELEN), encoding: NSASCIIStringEncoding)! as String
iPhoneModel = iPhoneModel.stringByReplacingOccurrencesOfString("\0", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
return iPhoneModel
}