【问题标题】:[<__NSCFString 0x7f8392695300> valueForUndefinedKey:]: this class is not key value coding-compliant for the key name.'[<__NSCFString 0x7f8392695300> valueForUndefinedKey:]:这个类不符合键名的键值编码。
【发布时间】:2015-06-23 21:04:05
【问题描述】:

由于未捕获的异常而终止应用程序

NSUnknownKeyException', reason: '[<__nscfstring> valueForUndefinedKey:]: 这个类不符合键名的键值编码。

遇到异常.. 我正在尝试向 tableview 显示数据库值

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // Dequeue the cell.
    //static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"idCellRecord" forIndexPath:indexPath];

   NSInteger indexOfFirstname = [self.dbManager.arrColumnNames indexOfObject:@"name"];

    NSInteger indexOfLastname = [self.dbManager.arrColumnNames indexOfObject:@"fname"];
    cell.textLabel.text = [NSString stringWithFormat:@ "%@ %@", [[self.arrPeopleInfo objectAtIndex:indexPath.row]valueForKey:@"name"], [[self.arrPeopleInfo objectAtIndex:indexPath.row] valueForKey:@"fname"]];

【问题讨论】:

  • 只需检查您是否已将 tableview 的插座正确设置为同一类,以及数据源和委托
  • 顺便说一句,你是如何初始化 UITableViewCell 的?如果单元格为零,只需检查 NSInteger 行上的断点

标签: ios objective-c iphone


【解决方案1】:
[self.arrPeopleInfo objectAtIndex:indexPath.row]

正在返回一个字符串,然后您尝试调用 'valueForKey:' 并且字符串不响应该选择器。检查arrPeopleInfo 的内容是否真的是字典。

【讨论】:

    【解决方案2】:

    按照以下步骤操作:

    1) 转到xib 类文件或者如果它在storyboard

    2) 右键点击UITableView, remove 之前的bindings

    3) 通过提供IBOutletdelegatedatasource 添加新绑定。

    4) Clean project 并再次运行。

    【讨论】:

      【解决方案3】:

      该错误表示您的表格视图不键值兼容,这意味着 KVP(键值对不可用对于那种类型的对象。

      【讨论】:

      • 尽可能使用方法更改值。我不知道具体细节,因为我不经常使用表和数据库。我会同意上面王子的回答。
      【解决方案4】:

      检查您的故事板并清除警告。应该有一些连接错误或警告

      在你的情况下会有一些黄色标记,清除它看。它会工作的

      【讨论】:

      • 这就是我想要的。干得好;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 2015-09-13
      • 2016-04-01
      • 2014-01-12
      • 1970-01-01
      相关资源
      最近更新 更多