Objective C成员引用基类型错误

时间:2012-07-29 20:16:31

标签: iphone objective-c ios

我正在关注Alasdair Allan第91页的学习iOS编程第2版中的代码。我正在尝试将表格视图输出信息添加到文本视图中。在添加此代码之前,其他所有工作都有效。 delegate.cities是指在AppDelegate中称为cities的NSMutableArray。

我认为可能与 objectAtIndex 期待 NSUInteger 有关,但该书说它发送 index.row index 的类型为 NSIndexPath ,它位于我导入此类的SimpleView类中。 的类型为 NSInteger ,所以我假设问题是该书要求我在期望时发送带有符号整数的 objectAtIndex 无符号整数。这可能是他的问题吗?如果是这样,我该如何解决?

错误讯息: 成员引用基类型'char (const char ,int)'不是结构或联合

这是我的功能:

-(void)viewDidLoad
{
    [super viewDidLoad];

    AppDelegate *delegate = 
            (AppDelegate *)[[UIApplication sharedApplication] delegate];

    City *thisCity = [delegate.cities objectAtIndex:index.row]; //error with index.row

    self.title = thisCity.cityName;
}

1 个答案:

答案 0 :(得分:2)

系统标头index()中的全局函数string.h定义了类似于错误(char* (const char*, int))的签名。似乎编译器认为您正在尝试将该函数作为结构或联合访问(即通过在其上使用.row,这是您可以对结构执行的操作)。

显然你的类中没有名为index的字段(你没有显示类,所以我猜),或者编译器以某种方式错误地解析它。使用正确的字段名称或使用self->index.row等内容消除歧义。