我正在尝试以编程方式制作一个应用程序,其中包含一个 UITableView,它根据应用程序的文档目录中的文件创建项目列表。我已经能够将文件读入数组_filepathsArray
,但是当我尝试使用数组填充表格时,编译崩溃并且 Xcode 抛出警告。
Xcode 指出以下几行的问题:
_tableView.delegate = self;
_tableView.dataSource = _filepathsArray;
这两者都会引发“语义问题”。第一个投掷
`Assigning to 'id<UITableViewDataSource>' from incompatible type 'NSArray *__strong'`,
而第二个抛出
`Assigning to 'id<UITableViewDelegate>' from incompatible type 'BrowserViewController *const __strong'`.
如果我删除这些行,应用程序将正确编译(但当然不会使用数据来填充表格),所以我认为问题与这些有关。
我是 Objective C 和 Xcode 的初学者,所以我不太清楚我在这里做错了什么。谢谢您的帮助。
UPDATE
我已经改变线路_tableView.dataSource = _filepathsArray;
to _tableView.dataSource = self;
正如下面几个答案所解释的。现在,两行都会抛出相同的错误:
`Assigning to 'id<UITableViewDelegate>' from incompatible type 'BrowserViewController *const __strong'`.
此错误是否是视图控制器配置方式导致的?在头文件中,它被定义为一个UIViewController
@interface BrowserViewController : UIViewController
然后我包含一个 UITableView 作为子视图。