【发布时间】:2013-11-24 03:27:40
【问题描述】:
我收到一个语义错误“在 'XYZAddToDoItemViewController *' 类型的对象上找不到属性 'tableView'。这是我收到错误的 ToDoListViewController.m 的代码:
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{
XYZAddToDoItemViewController *source = [segue sourceViewController];
XYZToDoItem *item = source.toDoItem;
if (item != nil) {
[self.toDoItems addObject:item];
[self.tableView reloadData];
}
}
这是实现文件的顶部:
#import "XYZToDoItem.h"
#import "XYZAddToDoItemViewController.h"
@interface XYZAddToDoItemViewController ()
@property NSMutableArray *toDoItems;
@end
@implementation XYZAddToDoItemViewController
这里是 XYZAddToDoItemViewController.h:
#import <UIKit/UIKit.h>
#import "XYZToDoItem.h"
@interface XYZAddToDoItemViewController : UIViewController
@property XYZToDoItem *toDoItem;
@end
如果您需要更多信息,请告诉我,并提前感谢您提供的任何帮助!
【问题讨论】:
-
我在您剪切并粘贴到此问题中的代码中的任何地方都看不到“
tableView”。 “tableView”属性声明在哪里? -
我从未声明过属性“tableView”,我的理解是它是一个继承的属性。实现文件在其他地方使用 tableView 而不会出错,例如这里: - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { // 返回节数。返回 1; }
-
@user2651272 如果您认为它是继承属性,那么您应该继承 UITablViewController 而不是 UIViewController。 developer.apple.com/library/ios/documentation/uikit/reference/…
-
你的理解有误。 UIViewController 没有或继承 tableView 属性。如果实现表视图数据源方法,表视图会传入一个 tableView 参数,这就是这些方法正常工作的原因。
-
感谢您的更正 rdelmar,这开始有意义了。
标签: ios objective-c semantics