我希望使用MR_ImportFromObject方法从字典中创建实体。在我更新Xcode 6到7之前,它已经工作了。但是当我使用Xcode7时,ImportFromObject方法就不能工作了。每次调用该方法,willImport代理方法都不会被调用,应用程序就会崩溃。
但是ImportFromArray方法工作得很好。
这是错误信息。我认为要点是"swift_bridgeNonVerbatimFromObjectiveC“和”值类型没有连接到目标-C“。
libswiftCore.dylib`swift_bridgeNonVerbatimFromObjectiveC: 0x1060d4d50 <+0>:rdi %rbp 0x1060d4d51 <+1>:movq %rsp,%rbp 0x1060d4dd54 <+4>:pushq %r150x1060d4dd56 <+6>:movq %R140x1060d4d58 <+8>:pushq %r12 0x1060d4d5a <+10>:pushq %rbx 0x1060d4d5b <+11>:movq %rdx,%rdx 0x1060d4dd5e <+14>:movq %rsi,%rbx 0x1060d4d61 <+17>:movq %rdi %,rdx 0x1060d4d4d5e<+14>:movq%rsi,%rbx 0x1060d4d4d61<+17>:movq%rdi%,%R150x1060d4d64 <+20>:leaq 0x54a15(%rip),%rsi;_TMpSs21_ObjectiveCBridgeable 0x1060d4d6b <+27>:movq %rax,%rdi 0x1060d4d6e <+30>:callq 0x1060d4610;swift_conformsToProtocol 0x1060d4d73 <+35>:movq %rax,%R120x1060d4d76 <+38>:testq %r12,%r12 0x1060d4d79 <+41>:je 0x1060d4dc9;<+121> 0x1060d4d7b <+43>:movq %rbx,%rdi 0x1060d4d7e <+46>:movq %rbx,%rsi 0x1060d4d81 <+49>:callq *0x8(%r12) 0x1060d4d86 <+54>:testb %al,%al0x1060d4d88 <+56>:je 0x1060d4d49;<+249> 0x1060d4d8e <+62>:movq %rbx,%rdi 0x1060d4d91 rbx: movq %rbx,%rsi 0x1060d4d94 <+68>:callq *0x10(%r12) 0x1060d4d99 <+73>:movq %r15,%rdi 0x1060d4d9c <+76>:movq %rax,%rsi 0x1060d4d4d9f <+79>:callq 0x1060d4d2100;swift_dynamicCastUnknownClass 0x1060d4da4 <+84>:testq %,%rax 0x1060d4da7 <+87>:je 0x1060d4d4e49;<+249> 0x1060d4dad <+93>:movq 0x20(%r12),%r8 0x1060d4db2 <+98>:movq %rax,%rdi 0x1060d4db5 <+101>:movq %r14,%rsi 0x1060d4db8 <+104>:movq %rbx,%rdx 0x1060d4dbb <+107>:movq %rbx,%rcx 0x1060d4dc3 dc5 <+110>:popq %rbp 0x1060d4dc6 <+118>:jmpq *%r8 0x1060d4dc9 <+121>:movq ( %rbx ),%rcx 0x1060d4dcc <+124>:xorl %eax,%eax 0x1060d4dce <+126>:cmpq $080,%C0x10dd4ddc5: cmpq,cddq1060d4dc9,rax%%rax 0x1060d4ddd <+141>:JNE0x1060d4df1;<+161> 0x1060d4ddf <+143>:testl $0x80ffffff,0x10(%rbx) 0x1060d4de6 <+150>:jne 0x1060d4e49;<+249> 0x1060d4de8 <+152>:leaq 0x54959(%rip),%r12;Swift._BridgeableMetatype协议见证表:Swift._BridgeableMetatype: Swift._ObjectiveCBridgeable in Swift 0x1060d4def <+159>:jmp 0x1060d4d7b;<+43> 0x1060d4df1 <+161>:cmpq $0xd,%rax0x1060d4df5 <+165>:jne 0x1060d4df5 <+165>:JNE0x1060d4df4<+159>:jmp 0x1060d4df1<+161>:cmpq$0xd,%rax1060d4df5<+165>:jne 0x1060d4df5;<+249> 0x1060d4df7 <+167>:movq 0x8(%rbx),%rax 0x1060d4dfb <+171>:movq ( %rax ),%rcx 0x1060d4dfe <+174>:xorl %eax,%eax 0x1060d4e00 <+176>:cmpq $0x80,%rcx 0x1060d4e07 <+183>:cmovbeq %rcx,%rax0x1060d4e0b <+187>:leaq 0x54936(%rip),%r12;Swift._BridgeableMetatype协议见证表: Swift._ObjectiveCBridgeable in Swift 0x1060d4e12 <+194>:cmpq $0x3f,%rax 0x1060d4e16 <+198>:JG0x1060d4e33;<+227> 0x1060d4e18 <+200>:cmpq $0xf,%rax 0x1060d4e1c <+204>:ja 0x1060d4d4d7b;<+43> 0x1060d4e22 <+210>:movl $0xb706,%ecx 0x1060d4e27 <+215>:btq %rax,%rcx 0x1060d4e2b <+219>:J0x1060d4d4d7b;<+43> 0x1060d4e31 <+225>:jmp 0x1060d4e49;<+249> 0x1060d4e33 <+227>:leaq -0x40( %rax ),%rcx 0x1060d4e37 <+231>:cmpq $0x2,%rcx 0x1060d4e3b <+235>:jb0x1060d4e49;<+249> 0x1060d4e3d <+237>:cmpq $0x80,%rax0x1060d4e43 <+243>:jne 0x1060d4d7b;<+43> 0x1060d4e49 <+249>:leaq 0x44e(%rip),rax;“值类型不连接到目标-C”0x1060d4e50 <+256>:movq %rax,0x86561(%rip);gCRAnnotations +8 0x1060d4e57 <+263>:int3 -> 0x1060d4e58 <+264>:nopl (%rax,%rax)
发布于 2015-09-16 13:31:16
现在,我更改了MagicalRecord MR_importFromObject库
id value = [objectData MR_valueForAttribute:primaryAttribute];
if (primaryAttribute != nil)
{
managedObject = [self MR_findFirstByAttribute:[primaryAttribute name] withValue:value inContext:context];
}至
if (primaryAttribute != nil)
{
id value = [objectData MR_valueForAttribute:primaryAttribute];
managedObject = [self MR_findFirstByAttribute:[primaryAttribute name] withValue:value inContext:context];
}您可能可以将它放在NSManagedObject上的一个类别或扩展中(迅速),并使用它直到MagicalRecord修复它为止。这就是我要做的。这件事帮我解决了这起车祸。
发布于 2015-09-11 04:38:05
尝试禁用快速编译器优化。我们有一个类似的坠机,与魔法记录无关,这是通过改变设置来修正的。
https://stackoverflow.com/questions/32514819
复制相似问题