-[__NSCFArray bytes]: 无法识别的选择器发送到实例

Posted

技术标签:

【中文标题】-[__NSCFArray bytes]: 无法识别的选择器发送到实例【英文标题】:-[__NSCFArray bytes]: unrecognized selector sent to instance 【发布时间】:2020-01-17 06:29:30 【问题描述】:

我已将我的产品数组保存在用户默认值中,如下所示:

  NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
  [userDefault setObject:[NSKeyedArchiver archivedDataWithRootObject:plans] forKey:@"plans"];
  [[NSUserDefaults standardUserDefaults] synchronize];

并读取默认值如下:

    NSArray *plans;
    NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"plans"];
    if (data != nil)
    
        plans = [NSKeyedUnarchiver unarchiveObjectWithData:data];
    

但有时我的应用程序在调用 unarchiveObjectWithData 方法时因 -[__NSCFArray bytes]: unrecognized selector sent to instance 而崩溃。

【问题讨论】:

【参考方案1】:

在某些时候,您必须将 NSArray 存储到 NSUserDefaults 中,而不是存档数据。您是否尝试过清除用户默认设置并重试?

【讨论】:

以上是关于-[__NSCFArray bytes]: 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章

NSCFArray 长度]:错误,数组正则表达式

如何将 NSCFArray(可能的 JSON)序列化为 NSDictionary?

地理服务器无法识别空间列

tar压缩,日志,FTP

Linux小常识

js无法识别的字符都有哪些