此编码器要求从 initWithCoder 返回替换的对象:'
Posted
技术标签:
【中文标题】此编码器要求从 initWithCoder 返回替换的对象:\'【英文标题】:This coder requires that replaced objects be returned from initWithCoder:'此编码器要求从 initWithCoder 返回替换的对象:' 【发布时间】:2011-04-18 18:50:25 【问题描述】:我正在模拟器 3.1.3 版本上测试我的应用程序,它运行良好。对于模拟器 3.2 或 4.0,它从一开始就崩溃:
2010-09-28 18:36:39.957 Angeloni[23268:207] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'This coder requires that replaced objects be returned from initWithCoder:'
*** Call stack at first throw:
(
0 CoreFoundation 0x0268cb99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x027dc40e objc_exception_throw + 47
2 CoreFoundation 0x02645238 +[NSException raise:format:arguments:] + 136
3 CoreFoundation 0x026451aa +[NSException raise:format:] + 58
4 UIKit 0x005d03fa UINibDecoderDecodeObjectForValue + 2384
5 UIKit 0x005d1179 -[UINibDecoder decodeObjectForKey:] + 398
6 UIKit 0x004f6d77 -[UIRuntimeConnection initWithCoder:] + 212
7 UIKit 0x005d04ca UINibDecoderDecodeObjectForValue + 2592
8 UIKit 0x005cfdc2 UINibDecoderDecodeObjectForValue + 792
9 UIKit 0x005d1179 -[UINibDecoder decodeObjectForKey:] + 398
10 UIKit 0x004f6034 -[UINib instantiateWithOwner:options:] + 804
11 UIKit 0x004f7eb5 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
12 UIKit 0x003ad95f -[UIViewController _loadViewFromNibNamed:bundle:] + 70
13 UIKit 0x003ab675 -[UIViewController loadView] + 120
14 UIKit 0x003ab54f -[UIViewController view] + 56
15 Angeloni 0x000045ba -[MenuPrincipalViewController gotoOfertas:] + 109
16 UIKit 0x003017f8 -[UIApplication sendAction:to:from:forEvent:] + 119
17 UIKit 0x0038cde0 -[UIControl sendAction:to:forEvent:] + 67
18 UIKit 0x0038f262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
19 UIKit 0x0038de0f -[UIControl touchesEnded:withEvent:] + 458
20 UIKit 0x003253d0 -[UIWindow _sendTouchesForEvent:] + 567
21 UIKit 0x00306cb4 -[UIApplication sendEvent:] + 447
22 UIKit 0x0030b9bf _UIApplicationHandleEvent + 7672
23 GraphicsServices 0x02f04822 PurpleEventCallback + 1550
24 CoreFoundation 0x0266dff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
25 CoreFoundation 0x025ce807 __CFRunLoopDoSource1 + 215
26 CoreFoundation 0x025cba93 __CFRunLoopRun + 979
27 CoreFoundation 0x025cb350 CFRunLoopRunSpecific + 208
28 CoreFoundation 0x025cb271 CFRunLoopRunInMode + 97
29 GraphicsServices 0x02f0300c GSEventRunModal + 217
30 GraphicsServices 0x02f030d1 GSEventRun + 115
31 UIKit 0x0030faf2 UIApplicationMain + 1160
32 Angeloni 0x00002342 main + 84
33 Angeloni 0x000022e5 start + 53
)
terminate called after throwing an instance of 'NSException'
有人遇到过这个问题吗?我在某个论坛上看到这是一个 IB 问题。
如果有人可以帮忙。
【问题讨论】:
嗨,您是否调用了 instantiateWithOwner,我似乎记得这是一个 4.x 唯一的方法。这让它在 3.1 而不是更高版本中工作有点奇怪? 你有没有想过这个问题?我找不到答案 【参考方案1】:在我没有使用任何 Storyboard 的项目中遇到了这个问题。
我必须做的:
转到我项目的Info.plist
文件
删除那里的Main storyboard file base name
条目。
【讨论】:
以上是关于此编码器要求从 initWithCoder 返回替换的对象:'的主要内容,如果未能解决你的问题,请参考以下文章
我应该在这里使用awakeFromNib还是initWithCoder?
我应该在这里使用 awakeFromNib 还是 initWithCoder ?
initWithCoder与initWithFrame的区别