मैं निम्नलिखित कार्य किया है:स्विफ्ट
func moveThing(thing: AnyObject, toLeft length: Int) {}
func moveThing(thing: AnyObject, toRight length: Int) {}
हालांकि, जब मैं एक पैरामीटर के रूप कार्यों में से एक पास, संकलक " 'moveThing की अस्पष्ट उपयोग के बारे में शिकायत '
func exec(function: (AnyObject, Int) ->()) {}
exec(moveThing) // Apparently ambiguous
exec(moveThing as (AnyObject, toLeft: Int) ->()) // Still ambiguous
मैं अस्पष्टता को कैसे हल कर सकता हूं?
संभवतः डुप्लिकेट [स्विफ्ट - वेरिएबल को ओवरलोडेड फ़ंक्शन असाइन करना] (http://stackoverflow.com/questions/28284924/swift-assigning-overloaded-function-to-variable) –
आप ऐसा क्यों करना चाहते हैं? क्यों moveThingLeft और moveThingRight का उपयोग नहीं करते? यदि आप अस्पष्टता को हल करने में सक्षम थे तो आप इसका उपयोग कैसे करने की योजना बना रहे हैं? – holroy
यह वास्तव में मौजूदा उद्देश्य-सी एपीआई का एक बंदरगाह है। मैं चयनकर्ताओं का उपयोग करके उन्हें आसानी से असंबद्ध कर सकता हूं "moveThing: toLeft:" और "moveThing: toRight:"। हालांकि, इसे स्विफ्ट के साथ दिमाग में डिजाइन किया गया था, नामकरण अलग हो सकता है। इसके अलावा, ऐप्पल इसे बहुत कुछ करता है, उदाहरण के लिए, UITableViewDataSource में, कई विधियां tableView (UITableView, XXX: NSIndexPath) से शुरू होती हैं। –