devdawei / DVVXibToCode

根据 xib 文件自动生成属性、添加视图、约束和Getter方法代码。
MIT License
6 stars 0 forks source link

识别不了,报错 #1

Open jacylouis opened 6 years ago

jacylouis commented 6 years ago

2018-02-06 13:38:42.356598+0800 DVVXibToCode[4427:636714] [General] *** -[NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil 2018-02-06 13:38:42.360633+0800 DVVXibToCode[4427:636714] [General] ( 0 CoreFoundation 0x00007fff4b15ffcb exceptionPreprocess + 171 1 libobjc.A.dylib 0x00007fff71e01c76 objc_exception_throw + 48 2 CoreFoundation 0x00007fff4b1a1264 _CFThrowFormattedException + 202 3 CoreFoundation 0x00007fff4b2414fa -[NSDictionaryM setObject:forKeyedSubscript:] + 1002 4 DVVXibToCode 0x0000000100007920 -[DVVCover findViewFromDict:superViewID:viewType:isRootView:] + 544 5 DVVXibToCode 0x000000010000680d -[DVVCover coverAtPath:xibType:] + 1133 6 DVVXibToCode 0x000000010001238a -[DVVXibToCodeViewController coverButtonClickAction] + 618 7 AppKit 0x00007fff48e5475a -[NSApplication(NSResponder) sendAction:to:from:] + 312 8 AppKit 0x00007fff488fa933 -[NSControl sendAction:to:] + 86 9 AppKit 0x00007fff488fa85b 26-[NSCell _sendActionFrom:]_block_invoke + 136 10 AppKit 0x00007fff488fa761 -[NSCell _sendActionFrom:] + 183 11 AppKit 0x00007fff4893ba18 -[NSButtonCell _sendActionFrom:] + 97 12 AppKit 0x00007fff488f8fca -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2438 13 AppKit 0x00007fff4893b75f -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 777 14 AppKit 0x00007fff488f7a64 -[NSControl mouseDown:] + 965 15 AppKit 0x00007fff48ff3959 -[NSWindow(NSEventRouting) _handleMouseDownEvent:isDelayedEvent:] + 5891 16 AppKit 0x00007fff48ff05b0 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 2359 17 AppKit 0x00007fff48fef85c -[NSWindow(NSEventRouting) sendEvent:] + 497 18 AppKit 0x00007fff48e50617 -[NSApplication(NSEvent) sendEvent:] + 307 19 AppKit 0x00007fff486b1d9d -[NSApplication run] + 812 20 AppKit 0x00007fff48680f1a NSApplicationMain + 804 21 DVVXibToCode 0x000000010000f382 main + 34 22 libdyld.dylib 0x00007fff729f1115 start + 1 23 ??? 0x0000000000000003 0x0 + 3 )

devdawei commented 6 years ago

你可以把xib文件发给我吗,我测试下看什么原因引起的这个问题?

jacylouis commented 6 years ago

你好,我已经找到原因了,原因是DVVCover.m 文件里, 的 - (NSString )coverAtPath:(NSString )path xibType:(DVVCoverXibType)xibType {....}方法里面 的 switch {}方法里

switch (xibType) {
    case DVVCoverXibTypeUIView:
    case DVVCoverXibTypeUIViewController:
        view = root[@"objects"][@"view"];
        break;

. .

我改成了这样

switch (xibType) {
    case DVVCoverXibTypeUIView:
       view = root[@"objects"][@"view"];
      break;
    case DVVCoverXibTypeUIViewController:
        view = [@"objects"][@"viewController"][@"view"];
        break;

. . 因为我用的是一个里面包含一个viewController 的Xib 来进行解析的. 我发现你的这个项目是一个很好的雏形,最近在重构以前含有大量StoryBoard 的项目,正好需要这样的一个工具,然后我在你的代码的基础上又进行了改造,以符合自己的项目要求.真的非常感谢你的分享.