gpt4 book ai didi

ios - 调用existingObjectWithID时如何解析dynamicCastClassUnconditional断点

转载 作者:行者123 更新时间:2023-11-29 02:35:45 25 4
gpt4 key购买 nike

我正在使用 swift 和 Xcode 6 创建一个 iOS 应用程序。我有一组充当向导的 View 。在第一个中,我创建了一个 NSManagedObject。然后我将其 objectID 传递给下一个 View 。在下一个 View 中,我使用existingObjectWithID 查找对象。找到该对象,但调试器在 EXC_BREAKPOINT 处停止。以下是断点的代码片段和堆栈。我该如何摆脱这个?

let context: NSManagedObjectContext = appDel.managedObjectContext!
let en = NSEntityDescription.entityForName("MyDataModel", inManagedObjectContext: context)
var d = MyDataModel(entity: en!, insertIntoManagedObjectContext: context)
d.name = nameField.text
d.autoplay = true
context.save(nil)
self.mydataId = d.objectID

然后在下一个 View 中,我使用以下代码获取对象(mydataId 从第一个 View Controller 传递到第二个 View Controller 。

var error: NSError?
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext!
var d: MyDataModel = context.existingObjectWithID(mydataId, error: &error) as MyDataModel
if error != nil {
println(error)
}

这是调试屏幕中断时的样子。

libswiftCore.dylib`swift_dynamicCastClassUnconditional:
0x10fcdf7d0: pushq %rbp
0x10fcdf7d1: movq %rsp, %rbp
0x10fcdf7d4: testq %rdi, %rdi
0x10fcdf7d7: je 0x10fcdf80e ; swift_dynamicCastClassUnconditional + 62
0x10fcdf7d9: movabsq $-0x7fffffffffffffff, %rax
0x10fcdf7e3: testq %rax, %rdi
0x10fcdf7e6: jne 0x10fcdf80e ; swift_dynamicCastClassUnconditional + 62
0x10fcdf7e8: movq 0xae741(%rip), %rax ; swift::ISAMask
0x10fcdf7ef: andq (%rdi), %rax
0x10fcdf7f2: nopw %cs:(%rax,%rax)
0x10fcdf800: cmpq %rsi, %rax
0x10fcdf803: je 0x10fcdf81d ; swift_dynamicCastClassUnconditional + 77
0x10fcdf805: movq 0x8(%rax), %rax
0x10fcdf809: testq %rax, %rax
0x10fcdf80c: jne 0x10fcdf800 ; swift_dynamicCastClassUnconditional + 48
0x10fcdf80e: leaq 0x332fd(%rip), %rax ; "Swift dynamic cast failed"
0x10fcdf815: movq %rax, 0xae5cc(%rip) ; gCRAnnotations + 8
0x10fcdf81c: int3
0x10fcdf81d: movq %rdi, %rax
0x10fcdf820: popq %rbp
0x10fcdf821: retq
0x10fcdf822: nopw %cs:(%rax,%rax)

它停在最后一个“movq”行。我希望有人知道如何摆脱这个。

最佳答案

经过多次尝试,我终于找到了解决这个问题的办法。我看到一个提示,应用程序名称需要放在数据模型定义映射中。以前我将类的名称设置为“MyModel”,但将其更改为“MyApp.MyModel”解决了这个问题(明确声明要为“MyModel”使用哪个类。

关于ios - 调用existingObjectWithID时如何解析dynamicCastClassUnconditional断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395517/

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