tôi đang ở một vị trí trong ứng dụng của tôi mà về cơ bản mỗi ViewController có NSManagedObjectContext địa phương:iOS Obj-C. Đưa ra giải pháp đúng?
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
và mỗi segue vượt qua managedObjectContext qua cùng setter
[segue.destinationViewController setManagedObjectContext:self.managedObjectContext];
Đến từ Java, nó sẽ là dễ tạo ra một lớp trừu tượng mà mỗi ViewController thực hiện. Trong mục tiêu-c nó không có vẻ như là có thể. Những gì tôi đang tìm kiếm để làm là có một lớp cơ sở thực hiện điều này đi qua, nhưng về cơ bản bất cứ điều gì mà thực hiện UIViewController sẽ có điều này (bao gồm chỉ là một UIViewController đồng bằng cũng như một UITableViewController). Nó sẽ là có thể/chính xác để có một lớp "trừu tượng" mà đặt ra như UIViewController mà hiện điều này?
Cập nhật:
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
Tôi nghĩ bạn có thể đang tìm kiếm một danh mục khách quan c. Chúng được sử dụng để mở rộng các lớp học. – Kyle
Tạo lớp trong Objective-C 1.0 là một *** ***, vì vậy nó đã bị loại bỏ trong 2.0. Tôi không nghĩ rằng nó đã từng là một phần của lớp iOS NSObject ở tất cả. – CodaFi
Trong khi tôi chưa bao giờ thấy lớp đặt ra trong iOS, tôi đã thấy một cái gì đó tương tự để thay thế UINavigationBar trong bộ điều khiển điều hướng. – Kyle