我有一個返回2結果(我可以看到使用NSLog記錄)的數組(_websites)。無法與NSArrayController綁定NSArray
我想要做的是在NSTableView中顯示那些有3列的2條記錄。我做了大量的嘗試,將我的數組的內容與NSArrayController綁定,沒有任何成功。
這裏是.h文件
#import <Cocoa/Cocoa.h>
#import "AppDelegate.h"
@interface CombinedViewController : NSViewController <NSTableViewDataSource>
@property (nonatomic,strong) NSManagedObjectContext *mObjContext;
@property AppDelegate *appDelegate;
@property (strong) IBOutlet NSArrayController *combinedRecordsArrayController;
@property (nonatomic,strong)NSArray *websites;
@property (weak) IBOutlet NSTableView *tableView;
@end
.m文件代碼:
#import "CombinedViewController.h"
#import "Website.h"
#import "Customer.h"
#import "Hosting.h"
@interface CombinedViewController()
@end
@implementation CombinedViewController
- (void)viewDidLoad {
[super viewDidLoad];
_appDelegate = (AppDelegate*)[[NSApplication sharedApplication] delegate];
self.mObjContext = _appDelegate.managedObjectContext;
[self getCombinedResutls];
}
-(NSArray *)getCombinedResutls {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Website" inManagedObjectContext:self.mObjContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedObjects = [self.mObjContext executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
NSLog(@"Error:%@",error);
}
_websites = [_mObjContext executeFetchRequest:fetchRequest error:nil];
for (Website *ws in _websites) {
Customer *cust = ws.customerInfo;
Hosting *host = ws.hostingInfo;
NSLog(@"Website: %@, Customer: %@, Hosting Provider: %@",ws.websiteUrl, cust.customerName, host.hostingProvider);
}
return fetchedObjects;
}
@end
我想學習如何做左右逢源,使用可可綁定和編程,因此任何將不勝感激。帶有一些最新教程的鏈接也將非常受歡迎。
我只是忘了提及...我在控制器內容中綁定NSArrayController與ContentArray,然後我綁定NSTableView與NSArrayController,以及我的表列,但我得到空NSTableView ...沒有錯誤顯示在控制檯上。
我改變了_websites與self.websites在我使用它的2行,而是一個空的nstableview,我現在得到錯誤:實體網站是不符合密鑰值的關鍵字「customerName」的密鑰值。還有什麼我應該改變我的代碼? – user2417624
您似乎在您的代碼中使用了customerInfo,而不是customerName – stevesliva
這就是for循環,如果我在那裏使用customerName,則顯示錯誤。我無法看到任何其他地方我有customerInfo。 CustomerInfo是關係的名稱,(一對一) – user2417624