UITabBarItem 外观正在抛出 EXC_BAD_ACCESS

UITabBarItem appearance is throwing a EXC_BAD_ACCESS

我有这段代码可以更改标签栏字距调整

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:2.0f, NSKernAttributeName, nil] forState:UIControlStateNormal];

在应用程序委托中,当我为我的应用程序启用 64 位 支持时,它会抛出 EXC_BAD_ACCESS。

您不能在 NSDictionary(或其他集合类型)中存储原始值(int、float 等)。

尝试将其包装成 NSNumber(这是通过简写语法 @( ) 完成的):

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:@(2.0f), NSKernAttributeName, nil] forState:UIControlStateNormal];

而且,顺便说一句,你真的应该使用现代字典语法,它更具可读性:

NSDictionary *attributes = @{
    NSKernAttributeName: @(2.0f)
};
[[UITabBarItem appearance] setTitleTextAttributes:attributes];