【问题标题】:Semantic error - property not found on object of type语义错误 - 在类型的对象上找不到属性
【发布时间】: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


【解决方案1】:

我猜你需要的是一个 UITableViewController,你有 self.tableView 属性。

【讨论】:

  • 感谢您的回复。我之前尝试过,这样做时我收到 Apple Mach-O Linker Error: 'Link command failed with exit code 1'
  • 好的链接器错误是什么?你是否使用故事板,如果你也必须在那里进行更改。
  • 我相信这是 3 个重复符号错误(重复符号 _OBJC_IVAR_$_XYZAddToDoItemViewController._toDoItem in:)。是的,我正在使用情节提要,我已经正确设置了视图控制器自定义类,除此之外,我不确定还要在情节提要上仔细检查什么。
  • 属性 toDoItem 已被多次声明,你为什么在 .h 和 .m 中都执行 #import "XYZToDoItem.h",这样做一次是 enuf 但我认为不会在这里解决我们的问题。检查您是否在项目的其他地方声明了相同的属性,并且您已经在此处导入了该类。
  • 我按照第 105 页“添加新项目”下的说明进行操作:developer.apple.com/library/ios/referencelibrary/GettingStarted/…
猜你喜欢
  • 2017-07-20
  • 2012-12-10
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 2014-04-27
  • 2012-03-04
相关资源
最近更新 更多