मैं अपने आवेदन में एक जगह है जहाँ अनिवार्य रूप से हर ViewController एक स्थानीय NSManagedObjectContext है पर हूँ:आईओएस ओब्जे-सी। सही समाधान दे रहा है?
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
और हर segue ही सेटर
[segue.destinationViewController setManagedObjectContext:self.managedObjectContext];
जावा से आ रहा है के माध्यम से managedObjectContext गुजरता है, यह हो सकता है प्रत्येक व्यू कंट्रोलर लागू करने वाले एक अमूर्त वर्ग को बनाना आसान है। उद्देश्य-सी में ऐसा लगता है कि यह संभव नहीं है। जो मैं करना चाहता हूं वह एक बेस क्लास है जो इस उत्तीर्ण को निष्पादित करता है, लेकिन मूल रूप से कुछ भी जो UIViewController को लागू करता है, इसमें यह होगा (केवल एक सादा UIViewController के साथ-साथ UITableViewController)। क्या यह एक "अमूर्त" वर्ग बनाने के लिए संभव/सही होगा जो UIViewController के रूप में बनता है जो ऐसा करता है?
अद्यतन:
UIViewController + ManagedObjectContext.h
@interface UIViewController (ManagedObjectContext)
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
UIViewController + ManagedObjectContext.m
#import "UIViewController+ManagedObjectContext.h"
@implementation UIViewController (ManagedObjectContext){
NSManagedObjectContext *context; // This is not valid, cant have local variables
}
@synthesize managedObjectContext; // This is not valid, must be @dynamic
-(void)setManagedObjectContext:(NSManagedObjectContext *)context{
//How do you have a local NSManagedObjectContext?
}
@end
: वैकल्पिक रूप से आप आवेदन प्रतिनिधि से प्रबंधित वस्तु संदर्भ प्राप्त कर सकते हैं आप
फोन करके managedObjectContext प्राप्त कर सकते हैं, तो आप प्रबंधित वस्तु बात कहा जाता है कहो मुझे लगता है कि आप एक उद्देश्य-सी श्रेणी की तलाश कर रहे हैं। वे कक्षाओं का विस्तार करने के लिए उपयोग किया जाता है। – Kyle
उद्देश्य-सी 1.0 में प्रस्तुत कक्षा एक *** गड़बड़ *** थी, इसलिए इसे 2.0 में हटा दिया गया है। मुझे नहीं लगता कि यह कभी भी आईओएस एनएसओब्जेक्ट क्लास का हिस्सा था। – CodaFi
जबकि मैंने आईओएस में कक्षा को कभी नहीं देखा है, मैंने नेविगेशन नियंत्रकों में UINavigationBar को प्रतिस्थापित करने के समान कुछ देखा है। – Kyle