के बजाय अपरिवर्तनीय एनएसएआरएआर में परिवर्तित कर दिया गया है एक साधारण स्विफ्ट क्लास में var Array का एक क्षेत्र है। वर्ग ऑब्जेक्टिव-सी करने के लिए अनुकूलित किया जाता है तो फ़ील्ड प्रकार NSArray (अपरिवर्तनीय), जबकि यह NSMutableArray (परिवर्तनशील) होना चाहिएप्रकार के स्विफ्ट क्लास फ़ील्ड var Array को NSMutableArray
class Categoryy: NSObject {
var items = Array<Item>()
}
Categoryy तेज वर्ग Xcode-उत्पन्न शीर्षक में ऑब्जेक्टिव-सी करने के लिए अनुकूलित किया गया है के रूप में सामने आ रहा है निम्नलिखित के रूप में MODULE_NAME-swift.h फ़ाइल:
SWIFT_CLASS("_TtC8waiterio9Categoryy")
@interface Categoryy : NSObject
@property (nonatomic, copy) NSArray * items;
- (instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
वहाँ वर मदों के लिए एक तरीका है: सरणी क्षेत्र ऑब्जेक्टिव-सी में एक परिवर्तनशील NSMutableArray के लिए परिवर्तित किया?
आप NSMutableArray के हैडर बदलने में सक्षम नहीं कर रहे हैं? – erdekhayser
यह एक व्यवहार्य समाधान नहीं है :(स्विफ्ट के लिए एक्सकोड-जेनरेटेड हेडर मॉड्यूल-स्विफ्टएच नामक है और हर बार एक्सकोड द्वारा पुन: निर्मित किया जाता है, प्रत्येक बार स्विफ्ट फाइलों में से एक फ़ील्ड या विधि हस्ताक्षर बदलता है। आप मैन्युअल रूप से प्रकार बदल सकते हैं NSArray से NSMutableArray के फ़ील्ड, लेकिन जैसे ही आप एक स्विफ्ट फ़ाइल के फ़ील्ड या विधियों के हस्ताक्षर को बदलते हैं, आपके सभी परिवर्तन गुम हो जाते हैं। – Giorgio
क्या आपने इस पर एक रडार दर्ज किया था? –