我有一个代码,用于定义字母表中的每个字母(实际上是两次)。它还将其设置为表格。但是,它给了我错误,“坏接收器类型'NSString * _strong *”
#import "editCodeTable.h"
@implementation editCodeTable
NSString *everything[63];
NSString *everything2[63];
-(void) setEverythings {
for (int i = 1; i < 26; i++) {
NSString *a = [NSString stringWithFormat:@"%c", i+97];
everything[i]=a;
everything2[i]=a;
}
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView {
return 63;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
if ([aTableColumn.identifier isEqualToString:@"row1"]){
[self setEverythings];
return [everything2 objectAtIndex:rowIndex]; //Error message appears here
}
return [everything objectAtIndex:rowIndex]; //Error message appears here
}
@end
我对Objective-C不满意,所以我不知道从哪里开始解决这个问题。
答案 0 :(得分:2)
由于everything
和everything2
不是NSArray
,因此您无法在其上调用objectAtIndex:
。
它们是字符串集合 *,因此请使用以下语法:
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
if ([aTableColumn.identifier isEqualToString:@"row1"]){
[self setEverythings];
return everything2[rowIndex];
}
return everything[rowIndex];
}
*我喜欢称他们为奇怪的东西