1

我有一个代码可以定义字母表中的每个字母(实际上是两次)。它还将它设置为一张桌子。但是,它给了我错误,“错误的接收器类型'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,所以我不知道从哪里开始解决这个问题。

4

1 回答 1

2

因为everythingand everything2are not NSArrays,所以你不能调用objectAtIndex:它们。

它们是字符串集合*,因此请使用以下语法:

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex {
    if ([aTableColumn.identifier isEqualToString:@"row1"]){
        [self setEverythings];
        return everything2[rowIndex];
        }
        return everything[rowIndex];
}

*我喜欢称它们为奇怪的东西

于 2013-06-02T00:17:52.567 回答