0

我创建了一个名为“Movie”的对象类,其中包含一个名为“showtimes”的属性,该属性的类型为 NSMutableArray。

现在我有另一个名为“LocalShowtimes”的类,它包含一个名为 moviesArray 的 NSMutableArray 类型的属性,其中填充了“Movie”类型的对象

我知道试图知道获得 moviesArray 的第一个对象并获取其属性“showtimes”以便对其进行处理。

这就是我正在尝试的: NSMutableArray *theShowtimes =[(Movie *)[[moviesArray] objectAtIndex:[o]] showtimes];

但编译器抱怨“预期标识符”

你能告诉我我做错了什么吗?

谢谢

4

2 回答 2

2

您应该使用objectAtIndex:或索引器:

// Like this - the old syntax
NSMutableArray *theShowtimes =[[moviesArray objectAtIndex:o] showtimes]; 

// Or like this - the new syntax
NSMutableArray *theShowtimes =[moviesArray[o] showtimes]; 
于 2013-08-07T17:42:46.380 回答
0

dasblinkenlight 为您的问题提供了解决方案,但只是为您的字面问题添加答案(“......我做错了什么?”):

Objective-C 中的方括号表示传递给对象的消息。在最简单的形式中,它看起来像这样:

[myObject importantMessage]

在您的代码中,您有以下内容:

[[moviesArray] objectAtIndex:[o]]

这意味着编译器认为您想向您的对象发送消息moviesArray,但您实际上并没有发送任何消息。编译器试图通过使用表达式“预期标识符”来告诉您这一点。

它期望的标识符是您显然要发送给对象的消息的名称。

现在,在你的情况下,你真的不想发送任何消息,因为moviesArray它本身就是一个非常好的数组,但编译器不知道这一点。

因此,正如 dasblinkenlight 所示,您所要做的就是删除对象周围多余的方括号,因此编译器不会认为您正在尝试向它发送消息。

相同的逻辑适用于,增加了不是对象[o]的复杂性- 它是(或应该是)一个简单的整数。o整数(以及浮点数、双精度数等)被称为基本类型,应该作为普通 C 变量处理,因为它们就是这样。

于 2013-08-07T18:24:26.577 回答