gpt4 book ai didi

iphone - 核心数据 : Setting Entity. 属性、类型问题

转载 作者:行者123 更新时间:2023-12-03 21:06:10 26 4
gpt4 key购买 nike

我目前正在尝试通过填写所需的属性来设置我的实体。我通过解析 XML 响应并在出现属性时分配属性来完成此操作。我遇到的问题是,我似乎存在类型不匹配,导致我的属性集函数抛出“发送到函数的选择器不正确”错误。我进入调试器并注意到,在分配给我的 custEntity.name 属性之前,我的类型似乎是 NSCFString 而不是 NSString。我已经进行了一些搜索、一些测试并尝试自行修复,但一无所获。这是一些相关代码及其效果。

自动生成并与我的其他实体定义 DataModelObject.h 合并到一个文件中:

@interface Checkpoint : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * lat;
@property (nonatomic, retain) NSNumber * lon;
@property (nonatomic, retain) NSManagedObject * myRoute;
@end

DataModelObject.m

@implementation Checkpoint
@dynamic name;
@dynamic lat;
@dynamic lon;
@dynamic myRoute;
@end

我当前的代码看起来像其他地方有类似问题的其他人的建议:

NSString *chkptName = [attributeDict objectForKey:@"name"];
checkpoint.name = [[NSString stringWithString:chkptName] stringValue];

这对我来说似乎有些严重的杀伤力,尽管我是 Objective-c 和 iPhone 开发的新手,所以我不知道,这可能是必要的,无论如何这都行不通。在执行第二行之前,chkptName 的值是我想要分配的正确的、人类可读的字符串。理论上,如果我正确理解了第二行,我只需用 ckptName 的值重新声明一个 NSString,然后用 stringValue 再次读出它的实际值,这应该与获取 chkptName 的值相同。然而,在第二行中,我的应用程序因 sigAbrt 崩溃,当我尝试检查变量的值时,它显示其类型为 NSCFString,且该值的摘要无效。此时我不知道如何解决这个问题。我之前正确修改过实体属性,没有遇到过这个问题。

可能还值得注意的是,我一开始就简单得多:

checkpoint.name = [attributeDict objectForKey:@"name"];

但这产生了相同的 sigAbrt 和不正确的选择器错误。

编辑:按要求完全错误:

2011-08-02 07:25:00.544 MyApp[16011:207] -[NSCFString stringValue]:无法识别的选择器发送到实例 0x5c174e02011-08-02 07:25:00.545 MyApp[16011:207] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSCFString stringValue]:无法识别的选择器发送到实例 0x5c174e0”

编辑2:调试器输出:

(gdb) po checkpoint
<Checkpoint: 0x5a30730> (entity: (null); id: (null) ; data: {})
(gdb) po [checkpoint class]
Checkpoint
(gdb) po [checkpoint entity]
Can't print the description of a NIL object.

非常感谢您提供的任何说明,如果我还遗漏了一些相关代码,请询问,如果可能的话,我将很乐意提供。谢谢!

-卡罗利

最佳答案

我认为您应该仔细查看并验证您的 checkpoint 变量确实是 Checkpoint 类的实例。

  1. 验证该类是否已在您的核心数据模型中正确设置。
  2. 在运行时设置断点并在调试器中打印对象:po checkpoint
  3. 在运行时使用以下命令验证对象的实体:po [检查点实体]

关于iphone - 核心数据 : Setting Entity. 属性、类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com