ObjectProperties.hऑब्जेक्टिव-सी प्रोटोकॉल आगे घोषणाएं
@protocol ObjectProperties <NSObject>
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSDate *date;
@property (assign, nonatomic) int64_t index;
@end
ClassA.h
#import <Foundation/Foundation.h>
@protocol ObjectProperties;
@interface ClassA : NSObject <ObjectProperties>
- (void)specialSauce;
@end;
ManagedClassA.h
#import <CoreData/CoreData.h>
@protocol ObjectProperties;
@interface ManagedClassA : NSManagedObject <ObjectProperties>
- (void)doSomething;
@end;
उपरोक्त कोड उदाहरण से, मैंने कोर डेटा ऑब्जेक्ट्स के साथ-साथ सादे ओल 'वेनिला ऑब्जेक्ट्स दोनों के साथ एक .h फ़ाइल में प्रोटोकॉल को परिभाषित किया है। यह वर्गों को अनुरूप बनाने के लिए "शोर" जैसा लगता है # प्रोटोकॉल को उनके शीर्षलेख में आयात करें; जैसा कि मैंने ऊपर दिखाया है, कार्यान्वयन फ़ाइल में प्रोटोकॉल & आयात को घोषित करने के लिए क्लीनर होगा। जब यह इस तरह से कर रही है हालांकि, Xcode एक चेतावनी फेंकता है:
Cannot find protocol definition for 'ObjectProperties'
कोड संकलित, और ज्यादातर काम करता है। मैं ज्यादातर इसलिए कहता हूं क्योंकि कोर डेटा के साथ स्केलर संपत्ति के लिए गेटर्स/सेटर्स को गतिशील रूप से बनाने की कोशिश कर रहे कुछ डेटा हैं, लेकिन मुझे लगता है कि शायद ऐसा इसलिए है क्योंकि मैंने एज एज केस मारा है।
बेशक, क्लास हेडर में प्रोटोकॉल हेडर आयात करने के लिए सबसे स्पष्ट काम है।
यदि मेरी समझ सही है (और मेरा ज्ञान हाल ही में अधिग्रहित है, और इसलिए यह पूरी तरह से संभव है कि मैं गलत हूं), अगर मैं अपने वर्ग शीर्षकों में प्रोटोकॉल आयात करता हूं और प्रोटोकॉल में बदलाव करता हूं, तो बाद में मेरी कक्षाओं को आयात करने वाली फ़ाइलों को फिर से सम्मिलित करना होगा।
इस प्रकार की समस्या को हल करने का सही तरीका क्या है?
मुझे एक समान समस्या है लेकिन स्विफ्ट प्रोटोकॉल के साथ। – Alper