मैं प्रोग्राम के रूप में अपने विचार से एक के लिए एक UITapGestureRecognizer जोड़ रहा में चयनकर्ता रहे हैं:पासिंग तर्क Swift3
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj)))
self.imageView.addGestureRecognizer(gesture)
func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
पहली समस्या मैं का सामना करना पड़ा था, " '#selector' का तर्क एक '@Objc का उल्लेख नहीं करता 'विधि, संपत्ति, या प्रारंभकर्ता
कूल, तो मैं handleTap हस्ताक्षर करने के लिए @objc कहा:।
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
अब मैं त्रुटि मिल रही है "विधि क्योंकि Ty @objc चिह्नित नहीं किया जा सकता पैरामीटर का पे उद्देश्य-सी में प्रदर्शित नहीं किया जा सकता है।
यह सिर्फ एक इमारत के मानचित्र की एक छवि है, जिसमें कुछ पिन छवियां ब्याज के बिंदुओं को इंगित करती हैं। जब उपयोगकर्ता इन पिनों में से किसी एक को टैप करता है, तो मैं जानना चाहता हूं कि किस बिंदु की रुचि उन्होंने टैप की है, और मेरे पास एक मॉडल ऑब्जेक्ट है जो रुचि के इन बिंदुओं का वर्णन करता है। मैं इस मॉडल ऑब्जेक्ट का उपयोग पिन छवि को मानचित्र पर निर्देशांक देने के लिए करता हूं, इसलिए मैंने सोचा कि मेरे लिए इशारा हैंडलर को ऑब्जेक्ट भेजना आसान होगा।
के साथ एक और फ़ंक्शन को कॉल आपको लगता है कि जैसे एक चयनकर्ता के मूल्यों पारित नहीं कर सकते हैं। आप उस मान को आवृत्ति चर में क्यों नहीं रख सकते और इसे चयनकर्ता विधि से एक्सेस नहीं कर सकते? –
http://stackoverflow.com/questions/35635595/sending-a-parameter-argument-to-function-through-uitapgesturerecognizer- चयनकर्ता का संभावित डुप्लिकेट। –