Sadece iPhone kullanıcıları belirli bir modele sahipse belirli bir kod bloğuna sahip olmaya çalışıyorum. IOS Simulator üzerinde test yapıyorum, bu yüzden simülatörün cihaz modelini almak için iPhoneModel()
işlev körüğünü kullandım ve konsola yazdırdım ve compare()
işlevindeki koşullara yapıştırdım.İki özdeş dizgiyi karşılaştırıyor, ancak false olarak değerlendiriliyorlar
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()
işlevi aynı dizeyi dönmelidir ve ifade doğru olmalı, ama bunun yerine yanlıştır. Hatta her iki dizeyi de kendi gözlerimle kontrol etmek için konsollara yazdırdım ve ikisi de aynı görünüyor, ancak bilgisayar aksini düşünüyor. Herhangi bir fikir neden? Ben sadece boş karakterler atmak düşünüyorum
kod tek tek ayrıntılı adıma bir hata ayıklayıcı kullanabilir miyim? –
İçinde boşluk bırakmadığından emin olmak için her iki dizenin uzunluğunu yazdırın. – dasblinkenlight
Ayrıca NSString'i –