我已经开始在Objective-C编写了好几天了,我对代表团感到很困惑。有人可以帮忙吗?
在MyClassA.h中
@protocol MyClassADelegate <NSObject>
- (void)haveANewMessage:(NSString*)message;
@end
@interface myClassA : NSObject <NSStreamDelegate> {
__unsafe_unretained id<MyDelegate> _delegate;
}
@property (nonatomic, assign) id<MyClassADelegate> delegate;
@end
在myClassB.h中
@interface myClassB : NSViewController <MyTableViewDelegate,MyClassADelegate>
@property (nonatomic, strong) myClassA* instance;
@property (nonatomic, strong) IBOutlet NSTableView* tableView;
@property (nonatomic, strong) NSMutableArray* messages;
@end
在myClassA.m
中我有
[self.delegate haveANewMessage:@"Messages"];
和myClassB.m
我有
- (void) haveANewMessage:(NSString *)message{
NSLog(@"Get here!");
[self.messages addObject:message ];
[self.tableView reloadData];
}
问题是我的表视图中没有显示任何内容。任何帮助? (实现了表视图相关方法)
答案 0 :(得分:1)
按顺序查看一些事项。
Get here!
表示您的委托方法正在被正确解雇?self.delegate = myClassBInstance
self.messages
已初始化了吗?作为旁注,在Objective-C中,您的班级名称以小写字母开头是不受欢迎的。类名应该是以大写字母开头的CamelCase,变量应该是以小写字母开头的camelCase。