स्विफ्ट में ऐसा करने के कई तरीके :
हम नीचे दिए गए मॉडल की जांच करते हैं (हम केवल यहां केस संवेदनशील खोज कर सकते हैं):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let result: Bool = NSString(string: deviceModel).containsString("iPad")
return result
}
हम नीचे दिए गए मॉडल की जांच करते हैं (हम यहां केस संवेदनशील / असंवेदनशील खोज कर सकते हैं):
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
यदि ऐप iPad या यूनिवर्सल के लिए है तो केवल iPad लौटाता है। अगर यह एक iPad पर चलाया जा रहा iPhone ऐप है तो यह नहीं होगा। इसलिए आपको इसके बजाय मॉडल की जांच करनी चाहिए। :
class func isUserUsingAnIpad() -> Bool {
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad {
return true
} else {
return false
}
}
नीचे यह स्निपेट संकलित नहीं करता है यदि वर्ग को विरासत में नहीं मिलता है UIViewController
, अन्यथा यह ठीक काम करता है। भले UI_USER_INTERFACE_IDIOM()
ही ऐप iPad या यूनिवर्सल के लिए ही iPad लौटाता है। अगर यह एक iPad पर चलाया जा रहा iPhone ऐप है तो यह नहीं होगा। इसलिए आपको इसके बजाय मॉडल की जांच करनी चाहिए। :
class func isUserUsingAnIpad() -> Bool {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) {
return true
} else {
return false
}
}
UI_USER_INTERFACE_IDIOM()
के बराबर है([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone)
। आप कहीं और परिणाम को कैशिंग से बेहतर हो सकते हैंBOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) …
:।