领域对象缺less除primaryKey之外的所有属性

我有我的tableViewDataSource依赖的RealmObject模型。 cellForRowAtIndexPath1方法能够很好地访问属性,但didSelectRowAtIndexPath从Realm对象中获取所有空属性。 我猜这与传递持续的Realm对象有关,但我不知道在哪里解决它。

 //viewController... override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) let realm = try! Realm() let books = realm.objects(Book) viewModel = BookListViewModel(books: Array(books), onSelection: onSelection, onDeleteFailure: onDeleteFailure) } //end viewController extension BookListViewModel: UITableViewDataSource { func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier(BookTableViewCell.nibName, forIndexPath: indexPath) as! BookTableViewCell cell.bind(bookCellViewModels[indexPath.row]) // NOTE: // bookCellViewModels[indexPath.row].book all properties are valid strings return cell } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return bookCellViewModels.count } } extension BookListViewModel: UITableViewDelegate { func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let book = bookCellViewModels[indexPath.row].book // NOTE: // all book properties are empty string or nil onSelection(book) tableView.deselectRowAtIndexPath(indexPath, animated: true) } } 

您的debugging器可能会显示Realm对象的所有空属性值,因为您缺lessLLDB插件 。

安装Realm Xcode插件

通过恶魔岛

LLDB插件与Alcatraz上的Realm Xcode插件捆绑在一起。

  1. 如果尚未安装,请安装Alcatraz。

     curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh 
  2. 在Xcode中打开软件包pipe理器(⇧⌘9或Windows>软件包pipe理器)

  3. searchRealmPlugin

包管理器中的RealmPlugin

  1. 退出并重新启动Xcode以确保插件已加载

编译自己

您也可以通过打开包含在发布zip中的plugin/RealmPlugin.xcodeproj手动安装插件,然后单击构build。

仅安装LLDB插件

或者,您可以按照build议在链接脚本的第一个代码注释中安装它,或者只执行下面的脚本:

 mkdir -p ~/Library/Application\ Support/Realm wget -O ~/Library/Application\ Support/Realm/rlm_lldb.py https://raw.githubusercontent.com/realm/realm-cocoa/master/plugin/rlm_lldb.py touch ~/.lldbinit grep -q "rlm_lldb.py" ~/.lldbinit || echo "command script import "~/Library/Application Support/Realm/rlm_lldb.py" --allow-reload" >> .lldbinit 

没关系,事实certificate,这是一个与我的观点逻辑有关的错误。 我只是很困惑,因为Xcodedebugging器显示领域对象的所有空属性值,可能是因为他们都是dynamic属性。