【发布时间】:2012-07-17 15:32:44
【问题描述】:
请帮帮我,我做错了什么。
我使用示例中的BubbleCell 和BubbleElement。
由于未知原因,应用程序有时会在本机代码中崩溃。
如果我不使用DequeueReusableCell,我会尝试纠正这种情况,并始终创建一个新的BubbleCell。
另外,如果构造函数BubbleElement 传递一个字符串常量作为标题,而不是对象字段,问题就会消失。
堆栈跟踪:http://pastebin.com/KAYzpHDk
问题比看起来更深。 您的建议没有帮助,应用程序仍然崩溃。
我创建了一个单独的项目,只保留了显示问题所需的最少代码。 这个问题在某种程度上与 System.Json 相关......也许吧。
这是该项目的存档: https://dl.dropbox.com/u/63074515/BubbleNativeCrash.zip
动作顺序: 1)打开项目 2)编译运行模拟器无需调试(配置Debug|iPhoneSimulator) 3) 在第一个视图中单击 horse1 4)在出现的列表中,上下滚动整个项目几次 5)在我的情况下,在这个阶段我们崩溃了......(堆栈跟踪:http://pastebin.com/KAYzpHDk)
如果不是立即失败,可以返回联系人列表,反之亦然,甚至一次几次。 失败的速度取决于聊天中的消息数量。
现在是有趣的部分。 如果在 ChatViewController.cs 中注释第 406 行并取消注释第 407 行,问题就会完全消失(或者我无法在合理的时间内重复它):
// string messageText = msg.MessageText ?? string.Empty;
string messageText = "Hello, World!!!";
也就是说,将一个常量字符串传递给 BubbleElement 构造函数。 在那之后,我认为问题不会重复。
我试图让所有内容保持原样,但使用 Json 删除工作 - 问题消失了。 仅当 BubbleElement 从 JsonValue 读取字符串时出现问题(IM\IMMessage.cs 在第 36 行)。 即使在 IMMessage.cs 中有为 MessageText 设置常量字符串 - 问题也消失了。
我做错了什么? :)
附言对不起我的英语......它由谷歌翻译提供支持。
【问题讨论】:
标签: ios uitableview garbage-collection xamarin.ios monotouch.dialog