在init中加载NSArray时访问错误

时间:2012-06-10 12:10:48

标签: ios nsarray init

我有一个名为Letter的课程。在Letter的init方法中,我试图加载一个字符串数组,因此它们可以被该类的其他方法使用。

然后我根据Letter类实例化一个对象。我希望init调用加载数组,但是收到EXC_BAD_ACCESS错误。

Letter.h

@interface Letter : NSObject
{
    NSArray *consonants;
}

-(BOOL)typeOfLetter:(NSString *)_letter; 

Letter.m

#import "Letter.h"

@implementation Letter

- (id)init {
    self = [super init];
    if (self) {
        consonants = [NSArray arrayWithObjects:@"B",@"C",@"D",@"F",@"G",@"Ğ",@"H",@"J",@"K",@"L",@"M",@"N",@"P",@"R",@"S",@"Ş",@"T","@U",@"V",@"Y",@"Z",@"b",@"c",@"d",@"f",@"g",@"ğ",@"h",@"j",@"k",@"l",@"m",@"n",@"p",@"r",@"s",@"ş",@"t",@"u",@"v",@"z",nil];        
    }
    return self;
}

ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    BOOL retValue;

    Letter *letter = [[Letter alloc] init];
    retValue = [letter typeOfLetter:@"a"];

}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您忘记在其中一个字符串前添加@ 在您的数组中,您拥有此字符"@U",您必须将其更改为@"U"