接外包,有相关需求的可以联系我:Telegram | Email

[NSTaggedPointerString count]: unrecognized selector sent to instance 0xb4fad2e3e13e9cba

该文章创建(更新)于07/16/2023,请注意文章的时效性!

文章目录[隐藏]

昨天想着给已有项目配置修复一下国际化问题,刚开始还能运行后续运行报错如图所示,各种方法都没有找到原因。代码基本没有任何改动,后续发现已上线的版本也无法运行。xcode定位应该是在入口的@main开始发生问题,也怀疑是 Localizable.strings 的问题,但实际上没有任何修改记录。

报错

  • 日志
2023-07-16 04:13:48.942021+0800 PDFPhoto Protector[9808:134268] -[NSTaggedPointerString count]: unrecognized selector sent to instance 0xb4fad2e3e13e9cba
2023-07-16 04:13:48.942928+0800 PDFPhoto Protector[9808:134268] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSTaggedPointerString count]: unrecognized selector sent to instance 0xb4fad2e3e13e9cba'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001a319b154 __exceptionPreprocess + 176
    1   libobjc.A.dylib                     0x00000001a2cba4d4 objc_exception_throw + 60
    2   CoreFoundation                      0x00000001a3242110 -[NSObject(NSObject) __retain_OA] + 0
    3   CoreFoundation                      0x00000001a31030a0 ___forwarding___ + 1600
    4   CoreFoundation                      0x00000001a31029a0 _CF_forwarding_prep_0 + 96
    5   CoreFoundation                      0x00000001a31df09c _CFLocaleCreateLocaleIdentifierForAvailableLocalizations + 76
    6   CoreFoundation                      0x00000001a30df058 _CFLocaleCopyCurrentGuts + 816
    7   CoreFoundation                      0x00000001a30decfc +[NSLocale currentLocale] + 16
    8   Foundation                          0x00000001a4044dcc -[NSUserDefaults(NSUserDefaults) init] + 1136
    9   Foundation                          0x00000001a4044910 +[NSUserDefaults(NSUserDefaults) standardUserDefaults] + 64
    10  AppKit                              0x00000001a630c804 +[NSApplication initialize] + 88
    11  libobjc.A.dylib                     0x00000001a2caaff0 CALLING_SOME_+initialize_METHOD + 24
    12  libobjc.A.dylib                     0x00000001a2caac9c initializeNonMetaClass + 904
    13  libobjc.A.dylib                     0x00000001a2cc50e8 _ZL24initializeAndMaybeRelockP10objc_classP11objc_objectR12locker_mixinIN9lockdebug10lock_mixinI16objc_lock_base_tEEEb + 156
    14  libobjc.A.dylib                     0x00000001a2caa5c4 lookUpImpOrForward + 884
    15  libobjc.A.dylib                     0x00000001a2ca9f64 _objc_msgSend_uncached + 68
    16  AppKit                              0x00000001a630c59c NSApplicationMain + 376
    17  PDFPhoto Protector                  0x0000000100bd7618 $sSo21NSApplicationDelegateP6AppKitE4mainyyFZ + 40
    18  PDFPhoto Protector                  0x0000000100bd75e0 $s18PDFPhoto_Protector11AppDelegateC5$mainyyFZ + 44
    19  PDFPhoto Protector                  0x0000000100bd76b0 main + 28
    20  dyld                                0x00000001a2cebf28 start + 2236
)
libc++abi: terminating due to uncaught exception of type NSException
(lldb) 
  • 标红的地方,@main
import Cocoa

@main
class AppDelegate: NSObject, NSApplicationDelegate {

解决

  • 首先肯定是查找代码中是否有NSUserDefaults或者count相关用法,全局搜索没有。
  • 打过断点调试、配置全局异常抓取、程序添加过抓取异常以及动态instruments等等分析都没有得到任何有效作用,还是相同的报错。
  • 也重装过发行版本能够使用的程序,通用的问题,差点怀疑有可能是mac升级的问题了。
  • 有一次定位到了Foundation的问题,这个怎么说呢,官方的库咋也没招。
  • 尝试过删除国际等等配置文件来最小化范围定位,也没有找到具体的问题。
  • 从删除软件到删除可能的缓存等等都还是相同的错误差不多快放弃了,后来发现有命令行可以删除就试了一下,然后就成功了。只能说运气好,平常开发这种配置项都不是项目中的东西,没碰到感觉真的很难定位到具体的问题,特别这种一定程度上算是系统配置了。
defaults delete <bundle_id>

吐槽

  • xcode开发真难受,报错和异常信息每次感觉都是大海捞针。运气好一点可以一个一个的文件找出报错的红色标记,找出来也不一定能用,运气不好就只有一个大概的日志描述,打断点也不清楚有啥作用,也不清楚该从何入手,还会展示一堆毫无意义的汇编代码,就软件开发而言给这东西有啥用?屎一样的开发体验。
  • 就目前体验而言,感觉Mac用久了之后会有一堆垃圾配置等等,删除软件都不能彻底删除所有配置等等感觉也是一个奇葩逻辑。

要不赞赏一下?

微信
支付宝
PayPal
Bitcoin

版权声明 | Copyright

除非特别说明,本博客所有作品均采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。转载请注明转自-
https://www.emperinter.info/2023/07/16/unrecognized-selector-sent-to-instance/


要不聊聊?

我相信你准备留下的内容是经过思考的!【勾选防爬虫,未勾选无法留言】

*

*



YouTube | B站

微信公众号

👉 NewsLetter ❤️ 邮箱订阅 👈

优惠码

阿里云国际版20美元
Vultr10美元
搬瓦工 | Bandwagon应该有折扣吧?
Just My SocksJMS9272283 【注意手动复制去跳转】
域名 | namesiloemperinter(1美元)
币安 币安