相关疑难解决方法(0)

在NSArray上使用下标时编译错误"找不到预期的方法"

我编写了这个简单的代码来试用NSArrays 的新Objective-C文字语法:

NSArray *array = @[@"foo"];
NSLog(@"%@", array[0]); 
Run Code Online (Sandbox Code Playgroud)

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

读取在'NSArray*'类型的对象上找不到的数组元素的预期方法

只是想知道我是否做错了什么,或者文字还没有完全实现.我正在使用Apple LLVM 4.0编译并使用iOS 5 SDK.

这里也是错误的屏幕截图.

错误

cocoa compiler-errors objective-c nsarray objective-c-literals

33
推荐指数
2
解决办法
1万
查看次数

有没有办法在Xcode 4.4中获得整洁的Objective-C文字索引功能?

我阅读了所有关于新的Objective-C文字,并使用Xcode转换我的旧代码,但索引代码没有改变.我手动改变它,但它不会编译.我看到一篇帖子说我们要等到iOS 6,但我现在要索引!

有什么解决方案吗?

cocoa-touch objective-c xcode4.4 objective-c-literals

7
推荐指数
1
解决办法
4735
查看次数

为什么@YES给出"预期表达式"错误,但@(YES)编译?

使用XCode 4.4的转换为现代目标C语法,我的[NSNumber numberWithBool:YES]调用被转换为@(YES).我有一些问题,我现在已经忘记了,并将自己更改为@YES,这应该是正确的语法.

但是,这样做会给我一个错误:

意外的类型名称'BOOL':预期的表达式

我知道有一个"表达式"语法,但我不明白为什么我不能简单地使用@YES@NO.

// Compiler error:
NSDictionary *userDefaultsDefaults = @{@"hasBeenLaunched": @YES};

// No error
NSDictionary *userDefaultsDefaults = @{@"hasBeenLaunched": @(YES)};
Run Code Online (Sandbox Code Playgroud)

为什么@(YES)编译时@YES没有,我可以做些什么来解决这个问题?

compiler-errors objective-c objective-c-literals

5
推荐指数
1
解决办法
3191
查看次数