2011-04-18 83 views
3

任何人都知道我为什么从ibtool得到这个崩溃?在xib资源文件上运行ibtool时,doesNotRecognizeSelector异常

ibtool --generate-strings-file "my.strings" "myViewController.xib"

结果:

2011-04-18 17:49:41.848 ibtoold[32147:107] -[NSCFString count]: unrecognized selector sent to instance 0x20055f7e0 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
<key>com.apple.ibtool.errors</key> 
<array> 
    <dict> 
     <key>description</key> 
     <string>Exception while running ibtool: -[NSCFString count]:  unrecognized selector sent to instance 0x20055f7e0 
Backtrace: 
    0 0x00007fff81780796 __exceptionPreprocess (in CoreFoundation) 
    1 0x00007fff8300e0f3 objc_exception_throw (in libobjc.A.dylib) 
    2 0x00007fff817da110 +[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation) 
    3 0x00007fff8175291f ___forwarding___ (in CoreFoundation) 
    4 0x00007fff8174ea68 _CF_forwarding_prep_0 (in CoreFoundation) 
    5 0x00000001000ea974 IBAppendStringsfileEntries (in IDEInterfaceBuilderKit) 
    6 0x00000001000eac4b IBGenerateStringsfile (in IDEInterfaceBuilderKit) 

回答

3

这似乎是在ibtool新版本中的错误。在我的情况下,它是一个UISearchBar,其中设置了占位符文本。

即使删除占位符文本也不能解决问题,因为Interface Builder会在.xib中留下粪便。完全删除搜索栏并添加新的搜索栏而不设置占位符文本可修复该异常。

解决此问题的一种解决方法:使用$DEVELOPER_DIR/usr/bin/ibtool3这似乎是该工具的旧版本。

+0

我有同样的问题,重新创建没有占位符的UISearchBar解决了它。谢谢。 – Michal 2011-06-09 14:52:43

+0

我提交了雷达#9579250 – Michal 2011-06-09 15:25:56

+0

@Michal:请考虑将它添加到http://www.openradar.me/! – hop 2011-06-10 01:07:42