【问题标题】:tapping didSelectRowAtIndexPath when field comes from sqlite database当字段来自 sqlite 数据库时点击 didSelectRowAtIndexPath
【发布时间】:2014-05-10 00:09:09
【问题描述】:

我有一个 uitableview,其中填充了我的 sqlite 数据库中的数据。 结果,当我点击内容为“测试”的第一个单元格时,我试图加载一个新视图。 所以我尝试了以下代码

if ([[patients objectAtIndex:indexPath.row]isEqualToString:@"test"])
{do this }

但我收到错误-[Patient isEqualToString:]: unrecognized selector sent to instance 在我如何访问我的数据库字符串以比较它们时我点击时的值时,我会很想得到一些帮助。 谢谢 P.S 这就是我如何将我的值添加到我的 uitableview cellForRowAtIndexPath

Patient *as = [patients objectAtIndex:indexPath.row];
    cell.textLabel.text = as.region;

这段代码也给出了同样的错误

Patient *as = [patients objectAtIndex:indexPath.row];
if ([as.region isEqualToString:@"TEST"]) 

【问题讨论】:

  • [Patient isEqualToString:]: unrecognized selector 告诉您您使用了 Patient 类未实现的操作 (isEqualToString)。这通常是因为调用中使用的对象不是您认为的类型。要做的事情是将[patients objectAtIndex:indexPath.row] 的结果分配给一个临时变量,然后记录它或在断点处检查它以查看它是什么。 (然后,您可以将该 temp 用作isEqualToString 调用的对象——将所有内容编码在一行不会提高效率。)
  • @HotLicks 如果您查看我在原始消息中发布的最后一个代码,我在第二行添加了一个断点,我看到了.self、indexPath 和患者。在 indexPath 索引=NSUInteger)0null 但患者有 3 个对象(这是正确的),如果我在 0 上向下钻取,我看到 region=(_NSCFString *)@"TEST" 这是正确的。应该注意,我在 0 中还有 4 个其他列,但只关心 0

标签: ios objective-c sqlite uitableview


【解决方案1】:

患者是患者实例的数组。您正在尝试将整个实例与您无法执行的字符串进行比较。相反,我怀疑你想这样做:

if ([[[patients objectAtIndex:indexPath.row] region] isEqualToString:@"test"])

【讨论】:

  • 这就是我实际在做的事情:)
  • @Janita 不,不是:)
  • @Alladinian opps!对不起。我实际上已经尝试过,但是它给出了同样的错误
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 2016-07-31
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多