为什么NSString getCharacters不能在xcode中工作?

时间:2011-07-30 06:22:22

标签: objective-c nsstring

-(void)myFunction {

        unichar myBuffer[5];
        NSRange range = {0, 3};
        NSString *string = [NSString alloc];
        string = @"123";
        [string getCharacters:myBuffer :range];
}

获取警告

  

! NSString可能无法响应   到'-getCharacters ::'

然后在运行时执行SIGABRT。 为什么?????或者更好,我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:5)

要使用getCharacters:range:,请写下以下代码:

[string getCharacters:myBuffer range:range];

在Objective-C中,方法名称由参数(一个源自其Smalltalk遗产的特征)拆分。因此,您的原始代码试图发送一条基本上名为getCharacters: :的消息,该消息未找到。更正后的版本会发送消息getCharacters: range:

getCharacters:myBuffer构造说明getCharacters:range:的第一个参数是myBuffer。同样,range:range结构表示第二个参数是NSRange名为range