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.为什么?????或者更好,我怎样才能让它发挥作用?
要使用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.