जब मैं एक UIAlertController
सुविधा प्रारंभकर्ता को परिभाषित:विस्तार UIAlertController सुविधा init चेतावनी
extension UIAlertController {
convenience init(message: String?) {
self.init(title: nil, message: message, preferredStyle: .Alert)
self.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil))
}
}
और UIViewController
की मेरी उपवर्ग में एक बटन कार्रवाई में इसका इस्तेमाल करते हैं:
func buttonAction(button: UIButton) {
let alert = UIAlertController(dictionary: nil, error: nil, handler: nil)
presentViewController(alert, animated: true, completion: nil)
}
और सिम्युलेटर पर कि बटन पर क्लिक करें , मुझे चेतावनी मिलती है:
दृश्य नियंत्रक के दृश्य को लोड करने का प्रयास
: le यह deallocating है की अनुमति नहीं है और अपरिभाषित व्यवहार में हो सकता है (UIAlertController)func UIAlertControllerWithDictionary(message: String?) -> UIAlertController { let alert = UIAlertController(title: nil, message: message, preferredStyle: .Alert) alert.addAction(UIAlertAction(title: "OK", style: .Cancel, handler: nil)) return alert }
हालांकि, मैं अगर एक सुविधा प्रारंभकर्ता के बजाय एक चेतावनी प्राप्त नहीं है, मैं एक वैश्विक फ़ंक्शन का उपयोग करें
मैंने ऐप्पल को आईओएस एसडीके बग के रूप में इसकी सूचना दी है।
यह तय होने तक, चेतावनी को अनदेखा करना और सुविधा प्रारंभकर्ता का उपयोग करना ठीक है?
वाह पर अनुरोध को आगे बढ़ाता है। उत्कृष्ट डिबगिंग कौशल! आप ये सब कैसे जानते हो? क्या आपने बस एक्सकोड डीबगर का उपयोग किया है, ब्रेकपॉइंट सेट किया है, और चरणबद्ध है? – ma11hew28
अनुभव का मिश्रण, उद्देश्य-सी रनटाइम का ज्ञान और हां, डिबगिंग :) – fluidsonic