-(void)myFunction {
unichar myBuffer[5];
NSRange range = {0, 3};
NSString *string = [NSString alloc];
string = @"123";
[string getCharacters:myBuffer :range];
}
获取警告
! NSString可能无法响应 到'-getCharacters ::'
然后在运行时执行SIGABRT。 为什么?????或者更好,我怎样才能让它发挥作用?
答案 0 :(得分:5)
要使用getCharacters:range:
,请写下以下代码:
[string getCharacters:myBuffer range:range];
在Objective-C中,方法名称由参数(一个源自其Smalltalk遗产的特征)拆分。因此,您的原始代码试图发送一条基本上名为getCharacters: :
的消息,该消息未找到。更正后的版本会发送消息getCharacters: range:
。
getCharacters:myBuffer
构造说明getCharacters:range:
的第一个参数是myBuffer
。同样,range:range
结构表示第二个参数是NSRange
名为range
。