gpt4 book ai didi

objective-c - 在 NSArray 上使用下标时编译器错误 "expected method not found"

转载 作者:太空狗 更新时间:2023-10-30 03:08:48 24 4
gpt4 key购买 nike

我写了这段简单的代码来尝试 NSArray 的新 Objective-C 文字语法:

NSArray *array = @[@"foo"];
NSLog(@"%@", array[0]);

第一行工作正常,但下标导致错误:

Expected method to read array element not found on object of type 'NSArray *'

只是想知道我是否做错了什么,或者文字是否尚未完全实现。我正在使用 Apple LLVM 4.0 进行编译并使用 iOS 5 SDK。

这也是错误的屏幕截图。

Error

最佳答案

您必须使用 iOS 6 或 OS X 10.8 SDK 进行编译——否则 Foundation 对象没有必要的方法用于文字语法的下标位。*特别是在这种情况下,下标期望 objectAtIndexedSubscript: 将由 NSArray 实现,这是为与此编译器功能交互而创建的新方法。不过,新语法中仅与对象创建有关的部分应该可以正常工作——我认为这不需要任何新方法。

进一步阅读 http://clang.llvm.org/docs/ObjectiveCLiterals.html


*我基于 borrrden 进行的一些研究:https://stackoverflow.com/a/11407844/603977

我对这个答案有很多赞成票,我真的觉得它是建立在 borrden 的基础上的。如果您认为我的回答值得点赞,请点击并在那里投票。

关于objective-c - 在 NSArray 上使用下标时编译器错误 "expected method not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11425976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com