我正在关注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;
}
答案 0 :(得分:2)
系统标头index()
中的全局函数string.h
定义了类似于错误(char* (const char*, int)
)的签名。似乎编译器认为您正在尝试将该函数作为结构或联合访问(即通过在其上使用.row
,这是您可以对结构执行的操作)。
显然你的类中没有名为index
的字段(你没有显示类,所以我猜),或者编译器以某种方式错误地解析它。使用正确的字段名称或使用self->index.row
等内容消除歧义。