gpt4 book ai didi

objective-c - 将任何数据类型转换为 NSData 并再次返回

转载 作者:太空狗 更新时间:2023-10-30 03:25:48 29 4
gpt4 key购买 nike

我正在开发一个应用程序,您可以在其中通过多点连接将文本、图像或联系人发送到另一台设备。然后它将保存在第二个设备的核心数据中。

我所做的是将数据作为 NSDictionary 发送并再次将其转换回来。所以我在接收设备上留下了一个 NSDictionary。那么,如何将@"objectData"键的对象保存到Core Data 中呢?

我希望它能与 NSString、UIImage 和 ABPerson 一起使用。

    // Create a new object in the managed object context.
Received *receivedData = [NSEntityDescription insertNewObjectForEntityForName:@"Received" inManagedObjectContext:self.managedObjectContext];
// Assign the properties based on what was input in the textfields.

// Check what type it is
NSString *dataType = [dictionary objectForKey:@"type"];
receivedData.type = dataType;

// Determine what type of data was passed over...

if ([dataType isEqualToString:@"Photo"])
{
receivedData.object = UIImageJPEGRepresentation([dictionary
objectForKey:@"object"], 0.5f);

NSLog(@"A photo saved in core data");
}
else
{

//receivedData.object = [NSKeyedArchiver archivedDataWithRootObject:[dictionary objectForKey:@"object"]];
receivedData.object = [[dictionary objectForKey:@"object"] dataUsingEncoding:NSUTF8StringEncoding];

}

// Save the managed object context.
NSError *error = nil;
[self.managedObjectContext save:&error];

我不是特别想做 if, else if 语句来确定如何转换它的核心数据,因为当我显示数据时它会被重复。我还能做吗?我目前遇到 NSKeyedArchiver 类型的错误,我不确定为什么,因此它被注释掉了。

如有任何帮助,我们将不胜感激!

最佳答案

Try this link for understand how its work

您可以获得符合NSCoding(或NSSecureCoding)协议(protocol)的任何对象的NSData:

NSData *data=[NSKeyedArchiver archivedDataWithRootObject:yourObject];

这一行从 NSData 创建一个对象

TestClass *objTest=[NSKeyedUnarchiver unarchiveObjectWithData:yourData];

UIImageNSString 符合 NSCoding,但是对于 ABPerson 你需要使用 vCardRepresentation 返回 NSData

关于objective-c - 将任何数据类型转换为 NSData 并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851510/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com