我有一个标签栏,我试图通过将其设置为nil
来删除项目的徽章值。但是,有时候,我收到EXC_BAD_ACCESS
错误。异常后主线程被暂停,我po
:
(lldb) po [[self.tabBar items] objectAtIndex:2]
<UITabBarItem: 0x17015e980> //no problem with the class itself
(lldb) po [[[self.tabBar items] objectAtIndex:2] setBadgeValue:0]
nil
(lldb) po [[[self.tabBar items] objectAtIndex:2] setBadgeValue:1]
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x1).
The process has been returned to the state before expression evaluation.
(lldb) po [[[self.tabBar items] objectAtIndex:2] setBadgeValue:0]
nil
这似乎是随机发生的,至少我还没有找到具体的模式。但是,它没有任何意义。这是一个错误吗?
更新:哎呀,我尝试在上面的调试器中设置数字而不是字符串,这是正常的抛出,但原始问题仍然适用。
答案 0 :(得分:0)
你应该使用
[[self navigationController] tabBarItem].badgeValue = @"your-value";