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

-[__NSCFArray bytes]: unrecognized selector sent to instance

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

  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];
    }

但有时我的应用程序因 -[__NSCFArray 字节]而崩溃:无法识别的选择器在调用 unarchiveObjectWithData 方法时发送到实例

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