Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在swift&;中保存自定义对象;热可可_Swift_Macos_Cocoa - Fatal编程技术网

在swift&;中保存自定义对象;热可可

在swift&;中保存自定义对象;热可可,swift,macos,cocoa,Swift,Macos,Cocoa,我想保存一个自定义对象(包含一个自定义对象数组,该数组再次包含自定义对象和从标准整数到三维字节数组的无数属性)。 因此,序列化所有内容并以某种方式对所有这些内容进行递归编码,以便使用NSKeyedArchiver将其转换为数据将是一件非常痛苦的事情,难道没有一种类似c的简单方法,可以将我的主对象作为二进制文件保存并加载到hd上的某个地方吗 比如: //save NSData.makeBinaryStuffOutOf(myObject).saveIt(atSomeLocation) //and

我想保存一个自定义对象(包含一个自定义对象数组,该数组再次包含自定义对象和从标准整数到三维字节数组的无数属性)。 因此,序列化所有内容并以某种方式对所有这些内容进行递归编码,以便使用NSKeyedArchiver将其转换为数据将是一件非常痛苦的事情,难道没有一种类似c的简单方法,可以将我的主对象作为二进制文件保存并加载到hd上的某个地方吗

比如:

//save
NSData.makeBinaryStuffOutOf(myObject).saveIt(atSomeLocation) 
//and 
NSData.loadMyStuffAt(someLocation) as! myCustomClassThing
难道没有一种类似c的简单方法,可以将我的主要对象作为二进制文件保存并加载到hd上的某个地方吗

想一想,在C语言中你会怎么做

如果数据位于单个连续内存块中,并且不包含内部指针,则可以
写入(2)
/
读取(2)
内存块

但是,如果有内部指针,或者涉及多个内存块,那么您需要编写一些东西,可以将此结构编码/解码到字节序列中或从字节序列中解码出来

这将是一个小的工作,即使在C

或者你可以使用其他人已经编写的代码

NSKeyedArchiver

因此,序列化所有内容并以某种方式对所有这些内容进行递归编码,以便使用
NSKeyedArchiver
将其转换为数据将是一个巨大的痛苦

关于archiver类的要点是它们提供了所有的框架,您只需要为每个类编写一个归档/取消归档例程,然后就可以正常工作了