【问题标题】:how can convert an object to NSData in objc如何在 objc 中将对象转换为 NSData
【发布时间】:2017-08-04 23:18:00
【问题描述】:

现在,我有一堂课,假设它是 class User ... .. 我有一个实例User * admin = [[User alloc]init];

我现在需要将此admin 转换为NSData

有什么办法吗?

提前致谢。

【问题讨论】:

  • NSCoding?为什么NSData?给JSON?
  • 而 admin.someInstance 确实包含一些可转换为 NSData 的数据?
  • @Hamish,很抱歉造成混乱。我更新了编辑。
  • @Larme,需要转成NSData
  • @ShaoboWang:为什么要转成NSData?目的是什么?

标签: ios objective-c xcode cocoa-touch nsdata


【解决方案1】:

您可以为任何符合NSCodingNSSecureCoding 协议的对象获取NSData

NSData *data=[NSKeyedArchiver archivedDataWithRootObject:yourObject];

使用unarchiveObjectWithData再次转换为实际形式:

CustomCls *obj = [NSKeyedUnarchiver unarchiveObjectWithData:data];

【讨论】:

  • 感谢您的及时回复
  • 应用程序在这个上崩溃不知道为什么?
【解决方案2】:

先看看这个NSCoding link

归档您的对象

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:YourClass];

将您的数据取消归档到对象

YourClass *objYourClass = [NSKeyedUnarchiver unarchiveObjectWithData:data];

【讨论】:

    【解决方案3】:
    NSData *modelData = [NSKeyedArchiver archivedDataWithRootObject:UserLoginDetails requiringSecureCoding:true error:nil];
    NSDictionary *selectedUserLoginDetails = [NSKeyedUnarchiver unarchivedObjectOfClass:[NSDictionary class] fromData:modelData error:nil];
    NSLog(@"%@", selectedUserLoginDetails);
    

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多