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

Joe*_*Joe 0 objective-c nsstring

-(void)myFunction {

        unichar myBuffer[5];
        NSRange range = {0, 3};
        NSString *string = [NSString alloc];
        string = @"123";
        [string getCharacters:myBuffer :range];
}
Run Code Online (Sandbox Code Playgroud)

得到警告

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

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

Dan*_*her 5

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

[string getCharacters:myBuffer range:range];
Run Code Online (Sandbox Code Playgroud)

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

getCharacters:myBuffer结构说,第一个参数getCharacters:range:myBuffer.同样,range:range构造说第二个参数是你的NSRange名字range.