2014-07-23 8 views
13

मुझे स्विफ्ट में एक एक्सटेंशन बनाने में परेशानी हो रही है जो प्रोटोकॉल के अनुरूप है।स्विफ्ट एक्सटेंशन जो प्रोटोकॉल के अनुरूप है

ऑब्जेक्टिव-सी में मैं एक वर्ग है कि एक प्रोटोकॉल के अनुसार चलाया बना सकते हैं:

SomeProtocol.h

@protocol SomeProtocol 
... 
@end 

UIView + CategoryName

#import SomeProtocol.h 
@interface UIView (CategoryName) <SomeProtocol> 
... 
@end 

मैं कोशिश कर रहा हूँ स्विफ्ट एक्सटेंशन

के साथ इसे प्राप्त करने के लिए

SomeProtocol.swift

protocol SomeProtocol { 
    ... 
} 

UIView एक्सटेंशन

import UIKit 
extension UIView : SomeProtocol { 
... 
} 

मैं निम्नलिखित संकलक त्रुटि प्राप्त: अपने विस्तार में

Type 'UIView' does not conform to protocol 'SomeProtocol'

+1

क्या आपने प्रोटोकॉल में विधियों को लागू किया था? –

उत्तर

17

कृपया पुनः जाँच लें कि आपने सभी विधियों def लागू किया प्रोटोकॉल में ined। यदि फ़ंक्शन ए लागू नहीं किया गया है, तो आपको सूचीबद्ध संकलक त्रुटि मिल जाएगी।

protocol SomeProtocol { 
    func a() 
} 

extension UIView : SomeProtocol { 
    func a() { 
     // some code 
    } 
} 
9
//**Create a Protocol:** 

protocol ExampleProtocol { 
    var simpleDescription: String { get } 
    func adjust()-> String 
} 


//**Create a simple Class:** 

class SimpleClass { 

} 

//**Create an extension:** 

extension SimpleClass: ExampleProtocol { 

    var simpleDescription: String { 

    return "The number \(self)" 
    } 

    func adjust()-> String { 

    return "Extension that conforms to a protocol" 

    } 


} 

var obj = SimpleClass() //Create an instance of a class 

println(obj.adjust()) //Access and print the method of extension using class instance(obj) 

परिणाम: एक्सटेंशन है कि एक प्रोटोकॉल

आशा के अनुरूप है यह मदद करता है ..!

+0

क्या आप कृपया पुष्टि कर सकते हैं कि विभिन्न सरल डिस्क्रिप्शन: स्ट्रिंग {सेट सेट} संपत्ति की पुष्टि कैसे करें। –

+0

@राजेश कुमार 'var simpleDescription: स्ट्रिंग { {वापसी "संख्या \ (स्वयं)"} सेट (desc) {self.simpleDescription = desc} } ' –

संबंधित मुद्दे