坏接收器类型'NSString * _strong *

时间:2013-06-02 00:14:32

标签: objective-c

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

1 个答案:

答案 0 :(得分:2)

由于everythingeverything2不是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];
}

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