स्विफ्ट में खाली बंद करने के लिए सुरुचिपूर्ण तरीका, मुझे अक्सर विधि के अपेक्षित पैरामीटर (धैर्य) का अनुपालन करने के लिए विधि के लिए एक नोप क्लोजर पास करना होगा। ओबज सी के अच्छे पुराने दिनों में, कोई नोप कॉलबैक के लिए nil
पास कर सकता है और इसके साथ किया जा सकता है। स्विफ्ट में ऐसा करने के लिए एक खाली ब्लॉक पास किए बिना ऐसा करने का एक और अधिक शानदार तरीका है?स्विफ्ट
UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: { (UIAlertAction) -> Void in }) // do nothing in callback
पूरा उदाहरण:
import UIKit
class UIAlertControllerFactory {
class func ok(title: String, message: String) -> UIAlertController {
var alertController = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
var okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: { (UIAlertAction) -> Void in
})
alertController.addAction(okAction)
return alertController
}
}
मैं कसम खाई नहीं के बराबर काम नहीं किया बीटा में से एक में। धन्यवाद, मुझे _ दृष्टिकोण भी पसंद है। – dimroc
'हैंडलर' प्रकार का है' ((UIAlertAction!) -> शून्य)! ', इसका मतलब क्या है कि यह एक लागू रूप से अनचाहे वैकल्पिक है। यही कारण है कि आप इस पैरामीटर के लिए 'शून्य' पास कर सकते हैं। यह दस्तावेज है (अधिक जानकारी के लिए मेरा जवाब देखें)। –
ए '!' प्रत्यय का अर्थ है 'लागू रूप से अनप्राप्डऑप्शनल', जो ऐप्पल ज्यादातर (एपीआई में) का उपयोग करता है इसका मतलब यह है कि उन्होंने जांच नहीं की है कि 'शून्य' कानूनी है या नहीं। आईओएस 9.0 में, उन्होंने टाइप को '((UIAlertAction) -> शून्य) में बदल दिया?', जिसका अर्थ है कि उन्होंने सत्यापित किया कि 'शून्य' की अनुमति है। –