2015-09-11 4 views
2

Я хочу создать сущность из словаря, используя метод MR_ImportFromObject. Он работал до того, как я обновил Xcode 6 до 7. Но когда я использую Xcode7, метод ImportFromObject не работает. Каждый вызов этого метода, метод willImport Delegate не вызывается, и приложение разбивается.Метод MR_importFromObject не работает в XCode7.1 beta (Swift 2.0)

Но метод ImportFromArray работает очень хорошо.

Это сообщение об ошибке. Я думаю, что точки «swift_bridgeNonVerbatimFromObjectiveC» и «тип значения не привязан к Objective-C».

libswiftCore.dylib`swift_bridgeNonVerbatimFromObjectiveC: 0x1060d4d50 < +0>: pushq% RBP 0x1060d4d51 < + 1>: MOVQ% RSP,% RBP 0x1060d4d54 < +4,>: pushq% r15 0x1060d4d56 < +6>: pushq% r14 0x1060d4d58 < +8>: pushq% r12 0x1060d4d5a < + 10>: pushq% RBX 0x1060d4d5b < +11>: MOVQ% RDX,% r14 0x1060d4d5e < +14>: MOVQ% рши,% RBX 0x1060d4d61 < + 17>: movq% rdi,% r15 0x1060d4d64 < +20>: leaq 0x54a15 (% rip),% rsi; _TMpSs21_ObjectiveCBridgeable 0x1060d4d6b < +27>: movq% rbx,% rdi 0x1060d4d6e < +30>: callq 0x1060d4610; swift_conformsToProtocol 0x1060d4d73 < +35>: MOVQ% Rax,% r12 0x1060d4d76 < +38>: testq% r12, r12% 0x1060d4d79 < +41>: JE 0x1060d4dc9; < +121> 0x1060d4d7b < +43>: MOVQ% RBX,% RDI 0x1060d4d7e < +46>: MOVQ% RBX,% рши 0x1060d4d81 < +49>: callq * 0x8 (% r12) 0x1060d4d86 < +54> : testb% al,% al 0x1060d4d88 < +56>: je 0x1060d4e49; < +249> 0x1060d4d8e < +62>: MOVQ% RBX,% RDI 0x1060d4d91 < +65>: MOVQ% RBX,% рши 0x1060d4d94 < +68>: callq * 0x10 (% г12) 0x1060d4d99 < +73> : movq% r15,% rdi 0x1060d4d9c < +76>: movq% rax,% rsi 0x1060d4d9f < +79>: callq 0x1060d2100; swift_dynamicCastUnknownClass 0x1060d4da4 < +84>: testq% rax,% rax 0x1060d4da7 < +87>: je 0x1060d4e49; < +249> 0x1060d4dad < +93>: MOVQ 0x20 (% r12),% r8 0x1060d4db2 < +98>: MOVQ% Rax,% RDI 0x1060d4db5 < +101>: MOVQ% R14,% рши 0x1060d4db8 < + 104>: MOVQ% RBX,% RDX 0x1060d4dbb < +107>: MOVQ% RBX,% RCX 0x1060d4dbe < +110>: popq% RBX 0x1060d4dbf < +111>: popq% r12 0x1060d4dc1 < +113>: popq % r14 0x1060d4dc3 < +115>: popq% r15 0x1060d4dc5 < +117>: popq% rbp 0x1060d4dc6 < +118>: jmpq *% r8 0x1060d4dc9 < +121>: MOVQ (% RBX),% RCX 0x1060d4dcc < +124>: xorl% EAX, EAX% 0x1060d4dce < +126>: cmpq $ 0x80,% RCX 0x1060d4dd5 < +133>: cmovbeq% RCX,% Ракс 0x1060d4dd9 < +137>: cmpq $ 0xf,% Ракс 0x1060d4ddd < +141>: JNE 0x1060d4df1; < +161> 0x1060d4ddf < +143>: testl $ 0x80ffffff, 0x10 (% rbx) 0x1060d4de6 < +150>: jne 0x1060d4e49; < +249> 0x1060d4de8 < +152>: leaq 0x54959 (% rip),% r12; протокол для таблицы Swift._BridgeableMetatype: Swift._ObjectiveCBridable в Swift 0x1060d4def < +159>: jmp 0x1060d4d7b; < +43> 0x1060d4df1 < +161>: cmpq $ 0xd,% rax 0x1060d4df5 < +165>: jne 0x1060d4e49; < +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,% Ракс 0x1060d4e0b < +187>: leaq 0x54936 (% плагиат),% r12; протокол для таблицы Swift._BridgeableMetatype: Swift._ObjectiveCBridable в Swift 0x1060d4e12 < +194>: cmpq $ 0x3f,% rax 0x1060d4e16 < +198>: jg 0x1060d4e33; < +227> 0x1060d4e18 < +200>: cmpq $ 0xf,% rax 0x1060d4e1c < +204>: ja 0x1060d4d7b; < +43> 0x1060d4e22 < +210>: MOVL $ 0xb706,% ECX 0x1060d4e27 < +215>: BTQ% Ракс,% RCX 0x1060d4e2b < +219>: Чже 0x1060d4d7b; < +43> 0x1060d4e31 < +225>: jmp 0x1060d4e49; < +249> 0x1060d4e33 < +227>: leaq -0x40 (% Rax),% RCX 0x1060d4e37 < +231>: cmpq $ 0x2,% RCX 0x1060d4e3b < +235>: ДБ 0x1060d4e49; < +249> 0x1060d4e3d < +237>: cmpq $ 0x80,% rax 0x1060d4e43 < +243>: jne 0x1060d4d7b; < +43> 0x1060d4e49 < +249>: leaq 0x4467e (% rip),% rax; «тип значения не привязан к объекту-C» 0x1060d4e50 < +256>: movq% rax, 0x86561 (% rip); gCRAnnotations + 8 0x1060d4e57 < +263>: int3
-> 0x1060d4e58 < +264>: nopl (% Ракс,% Ракс)

ответ

1

Я изменил 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 не исправляет это , Вот что я сделаю. Это фиксировало эту катастрофу для меня.

0

Попробуйте отключить Свифта оптимизации компилятора. У нас был подобный сбой, не связанный с магической записью, который был исправлен путем изменения этой настройки.