为什么 NSString getCharacters 在 xcode 中不起作用?

发布于 2024-11-27 05:34:14 字数 368 浏览 0 评论 0原文

-(void)myFunction {

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

收到警告

! NSString 可能不响应 到“-getCharacters::”

然后在我运行它时执行 SIGABRT。 为什么?????或者更好的是我怎样才能让它工作?

-(void)myFunction {

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

Gets warning

! NSString may not respond
to '-getCharacters::'

then does a SIGABRT when I run it.
Why????? Or better yet how can I get it to work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悟红尘 2024-12-04 05:34:14

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

[string getCharacters:myBuffer range:range];

在 Objective-C 中,方法名称由参数分隔(源自 Smalltalk 传统的功能)。因此,您的原始代码试图发送一条本质上名为 getCharacters: : 的消息,但未找到该消息。更正后的版本发送消息getCharacters: range:

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

To use getCharacters:range:, write this line of code:

[string getCharacters:myBuffer range:range];

In Objective-C, method names are split up by arguments (a feature that derives from its Smalltalk heritage). So your original code was trying to send a message that's essentially named getCharacters: :, which isn't found. The corrected version sends the message getCharacters: range:.

The getCharacters:myBuffer construct says that the first argument to getCharacters:range: is myBuffer. Similarly, the range:range construct says the second argument is your NSRange named range.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文