字符串被视为导致崩溃的__NSCFNumber

问题描述 投票:0回答:1

使用Xcode V11.3.1,并使用Objective-C构建iPhone应用。我有一个名为CWCompany的对象,其中包含以下字段;

@property (nonatomic,strong) NSString *companyID;
@property (nonatomic,strong) NSString *name;
@property (nonatomic,strong) NSString *type;
@property (nonatomic,strong) NSString *addressLine1;
@property (nonatomic,strong) NSString *addressLine2;
@property (nonatomic,strong) NSString *city;
@property (nonatomic,strong) NSString *state;
@property (nonatomic,strong) NSString *zip;
@property (nonatomic,strong) NSString *country;

我从sqllite表填充,然后尝试在UIView中的UITableView中显示。但是,在尝试为公司ID填充单元格内的UITextField时,它崩溃并告诉我它是__NSCFNumber。我收到“-[__ NSCFNumber isEqualToString:]:无法识别的选择器发送到实例”。顺便说一句,它也作为字符串存储在sqllite表中。这是我用来在表格单元格中填充UITextField的代码。

    if (_company) {
        switch (indexPath.row)

        {
            case 0:
                cell = [tableView dequeueReusableCellWithIdentifier:@"rightDetailCell" forIndexPath:indexPath];
                cell.textLabel.text = @"ID";
                if (_company) {
                    cell.detailTextLabel.text = self.company.companyID;
                }else{
                    cell.detailTextLabel.text = @"";
                }
                break;

目前,我有一种解决方法,只需使用stringWithFormatcell.detailTextLabel.text = [NSString stringWithFormat:@"%@",self.company.companyID];可以正常工作,但是我很好奇理解为什么将此字符串字段解释为__NSCFNumber。感谢任何建议。谢谢。

objective-c uitableview uitextfield nscfnumber
1个回答
0
投票

确定,找到发生这种情况的原因。为了填充公司,我使用API​​调用,然后解码json响应。响应中的CustomerID是数字类型(没有引号),因此,即使我将其放入字符串类型的object字段中,也仍将其视为数字。通过将对象字段更改为NSNumber以匹配源已解决,因此我不得不对其进行适当处理。

感谢vadian建议我向后搜索以找出问题所在。欢呼声

© www.soinside.com 2019 - 2024. All rights reserved.