Xamarin.ios 使用“时本机stacktrace崩溃”;“泡沫信息”;在MonoTouch应用程序中聊天

Xamarin.ios 使用“时本机stacktrace崩溃”;“泡沫信息”;在MonoTouch应用程序中聊天,xamarin.ios,chat,Xamarin.ios,Chat,我正在使用此处提供的示例,并在常规UITableView中使用了代码: 我觉得一切都很好,直到我添加了很多信息。然后,当屏幕上的消息太多时,我看到它崩溃了(似乎是一个单元重用问题) 我的主要问题是stacktrace几乎什么也没说,所以有人在常规UITableView中使用了这段代码,并想共享一些代码吗 下面是我的GetCell方法和stacktrace: public override UITableViewCell GetCell (UITableView tableView, NSInd

我正在使用此处提供的示例,并在常规UITableView中使用了代码:

我觉得一切都很好,直到我添加了很多信息。然后,当屏幕上的消息太多时,我看到它崩溃了(似乎是一个单元重用问题)

我的主要问题是stacktrace几乎什么也没说,所以有人在常规UITableView中使用了这段代码,并想共享一些代码吗

下面是我的GetCell方法和stacktrace:

public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath) { ChatMessage msg = _items[indexPath.Row]; bool isLeft = msg.User.UserId != _controller._gamebackend.GetLocalUser().UserId; var cell = tableView.DequeueReusableCell (isLeft ? BubbleCell.KeyLeft : BubbleCell.KeyRight) as BubbleCell; if (cell == null) cell = new BubbleCell (isLeft); cell.Update (GetBubbleText(msg)); cell.SelectionStyle = UITableViewCellSelectionStyle.None; return cell; } 公共覆盖UITableViewCell GetCell(UITableView tableView,NSIndexPath indexPath) { ChatMessage msg=_items[indexPath.Row]; bool isLeft=msg.User.UserId!=\u controller.\u gamebackend.GetLocalUser().UserId; var cell=tableView.DequeueReusableCell(isLeft?BubbleCell.KeyLeft:BubbleCell.KeyRight)作为BubbleCell; if(单元格==null) 电池=新的气泡电池(isLeft); 更新(GetBubbleText(msg)); cell.SelectionStyle=UITableViewCellSelectionStyle.None; 返回单元; } 2 libsystem_c.dylib 0x31f247ed_sigtramp+48 6月24日0:27∶53未知3基金会0x37 16A137 PROBECO + 62 6月24日0:27∶53未知4基金会0x37 18983B-[ NSRealTimeTable ReaveObjutoKiKe:] + 34 6月24日00:27:53未知5 UIKit 0x353e13a1-[\u UIImageViewPretiledImageWrapper dealloc]+80 6月24日00:27:53未知6 libobjc.A.dylib 0x34abe175_objc_rootRelease+36 6月24日00:27:53未知7 libobjc.A.dylib 0x34abfe57 objc_发布+38 6月24日00:27:53未知8 libobjc.A.dylib 0x34abeed\u ZN12\u GLOBAL\u N\u 119AutoreleasePoolPage3popEPv+224 6月24日00:27:53未知9 libobjc.A.dylib 0x34abedc9_objc_autoreleasePoolPop+12 6月24日00:27:53未知10 CoreFoundation 0x32a6dcff自动释放池POP+18 6月24日00:27:53未知11夸脱核心0x31fba91d_ZN2CA7Display11DisplayLink8调度Y+340 6月24日00:27:53未知12夸脱芯0x31fba7c5 _Zn2CA7Display16IOMFDisplayLink8CallbackEP21 __IOMobileFrameBufferyyyyyyyyPV+60 6月24日00:27:53未知13 IOMobileFramebuffer 0x32ba8001 IOMobileFramebufferVsyncNotifyFunc+156 6月24日00:27:53未知的14 IOKit 0x34e3d60d碘标编号来自CFMessage+188 6月24日00:27:53未知15芯基金会0x32ae6f13\uuU CFMACHPORT执行+362 6月24日00:27:53未知16 CoreFoundation 0x32af1523\uuuu CFRUNLOOP\u正在调用\uu OUT\u以执行功能\uuuu+38 6月24日00:27:53未知17 CoreFoundation 0x32af14c5\uU CFRunLoopDoSource1+140 6月24日00:27:53未知18 CoreFoundation 0x32af0313\uuu CFRunLoopRun+1370 6月24日00:27:53未知19 CoreFoundation 0x32a734a5 CFRunLoopRunSpecific+300 6月24日00:27:53未知20芯基金会0x32a7336d CFRUNLOOPSRUNINMODE+104 六月24日00:27:53未知21图形服务0x32bc0439 GSEventRunModal+136 六月24日00:27:53未知22 UIKit 0x35052cd5 UIApplicationMain+1080
还有另一种解决方法:将创建的所有单元格存储在类级列表中


但是,从UITableViewCells派生的类型不应出现这种情况,因此您是否也可以在上提交一个bug,以便将来能够防止这种情况发生?

如果我删除了单元重用代码,错误就会消失。我只是一直在创造细胞。但这似乎有点骇人听闻,即使性能良好,一切正常:-)我将尝试收集一个示例项目,在我从谷歌IO回来后演示这个问题,并将其提交到bugzilla网站。 2 libsystem_c.dylib 0x31f247ed _sigtramp + 48 Jun 24 00:27:53 unknown 3 Foundation 0x3716a137 probeGC + 62 Jun 24 00:27:53 unknown 4 Foundation 0x3718983b -[NSConcreteMapTable removeObjectForKey:] + 34 Jun 24 00:27:53 unknown 5 UIKit 0x353e13a1 -[_UIImageViewPretiledImageWrapper dealloc] + 80 Jun 24 00:27:53 unknown 6 libobjc.A.dylib 0x34abe175 _objc_rootRelease + 36 Jun 24 00:27:53 unknown 7 libobjc.A.dylib 0x34abfe57 objc_release + 38 Jun 24 00:27:53 unknown 8 libobjc.A.dylib 0x34abeead _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 224 Jun 24 00:27:53 unknown 9 libobjc.A.dylib 0x34abedc9 _objc_autoreleasePoolPop + 12 Jun 24 00:27:53 unknown 10 CoreFoundation 0x32a6dcff _CFAutoreleasePoolPop + 18 Jun 24 00:27:53 unknown 11 QuartzCore 0x31fba91d _ZN2CA7Display11DisplayLink8dispatchEyy + 340 Jun 24 00:27:53 unknown 12 QuartzCore 0x31fba7c5 _ZN2CA7Display16IOMFBDisplayLink8callbackEP21__IOMobileFramebufferyyyPv + 60 Jun 24 00:27:53 unknown 13 IOMobileFramebuffer 0x32ba8001 IOMobileFramebufferVsyncNotifyFunc + 156 Jun 24 00:27:53 unknown 14 IOKit 0x34e3d60d IODispatchCalloutFromCFMessage + 188 Jun 24 00:27:53 unknown 15 CoreFoundation 0x32ae6f13 __CFMachPortPerform + 362 Jun 24 00:27:53 unknown 16 CoreFoundation 0x32af1523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38 Jun 24 00:27:53 unknown 17 CoreFoundation 0x32af14c5 __CFRunLoopDoSource1 + 140 Jun 24 00:27:53 unknown 18 CoreFoundation 0x32af0313 __CFRunLoopRun + 1370 Jun 24 00:27:53 unknown 19 CoreFoundation 0x32a734a5 CFRunLoopRunSpecific + 300 Jun 24 00:27:53 unknown 20 CoreFoundation 0x32a7336d CFRunLoopRunInMode + 104 Jun 24 00:27:53 unknown 21 GraphicsServices 0x32bc0439 GSEventRunModal + 136 Jun 24 00:27:53 unknown 22 UIKit 0x35052cd5 UIApplicationMain + 1080