Nhiều cách để làm điều đó trong Swift :
Chúng tôi kiểm tra mô hình bên dưới (chúng tôi chỉ có thể thực hiện tìm kiếm phân biệt chữ hoa chữ thường ở đây):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let result: Bool = NSString(string: deviceModel).containsString("iPad")
return result
}
Chúng tôi kiểm tra mô hình bên dưới (chúng tôi có thể thực hiện tìm kiếm trường hợp nhạy cảm / không nhạy cảm ở đây):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let deviceModelNumberOfCharacters: Int = count(deviceModel)
if deviceModel.rangeOfString("iPad",
options: NSStringCompareOptions.LiteralSearch,
range: Range<String.Index>(start: deviceModel.startIndex,
end: advance(deviceModel.startIndex, deviceModelNumberOfCharacters)),
locale: nil) != nil {
return true
} else {
return false
}
}
UIDevice.currentDevice().userInterfaceIdiom
bên dưới chỉ trả về iPad nếu ứng dụng dành cho iPad hoặc Universal. Nếu đó là một ứng dụng iPhone đang chạy trên iPad thì nó sẽ không hoạt động. Vì vậy, bạn nên thay vì kiểm tra mô hình. :
class func isUserUsingAnIpad() -> Bool {
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad {
return true
} else {
return false
}
}
Đoạn mã dưới đây không biên dịch nếu lớp không kế thừa một UIViewController
, nếu không nó hoạt động tốt. Bất kể UI_USER_INTERFACE_IDIOM()
chỉ trả lại iPad nếu ứng dụng dành cho iPad hoặc Universal. Nếu đó là một ứng dụng iPhone đang chạy trên iPad thì nó sẽ không hoạt động. Vì vậy, bạn nên thay vì kiểm tra mô hình. :
class func isUserUsingAnIpad() -> Bool {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) {
return true
} else {
return false
}
}
UI_USER_INTERFACE_IDIOM()
tương đương với([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone)
. Bạn có thể tốt hơn tắt bộ nhớ đệm kết quả ở đâu đó :BOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) …
.