Tag: 序列化

保留数据一段时间的最佳方式(如4-5天)

该平台是monotouch我开发一个应用程序的iPhone。 我有一个叫Globals的课。 “Globals”对象在游戏过程中从UI和计算中收集条目。 我打算序列化对象并将其stream式传输到一个txt文件。 当游戏再次启动时恢复它。 (记住我创build的序列化文件只有用户终止的程序) 我使用反序列化的对象从用户终止程序的那一刻开始。 这样好吗? 这是最佳做法吗? 或者我需要使用其他方法来保持游戏的信息。 请为此评论或build议一个最佳实践。

NSKeyedArchiver / NSKeyedUnarchiver在不同iOS版本上的兼容性

在iOS应用程序中,我们通过NSKeyedArchiver / NSKeyedUnarchiver使用复杂对象的序列化来存储信息和数据。 所以应用程序将在应用程序包中包含这样一个序列化的对象,并且这个文件将在一个特定的iOS版本下创build(比如说iOS 5.0) 由于应用程序将在不同的iOS版本(> 5.0)上运行,甚至在将来的版本中运行,所以我们要确保应用程序包中包含的原始序列化对象在每个其他iOS(6.1,7.0, …) 假设要序列化的复杂对象是由所有这些iOS版本的SDK中包含类的对象组成的(为了简单起见,我们假设将来不会在这些类中发生弃用),我们可以完全确定它会总是与所有的iOS兼容?

如何读取和写入一个XML文件到相同的位置?

我准备了一些内容的XML文件,并希望加载它在iOS设备上玩,但我也想改变加载的数据,并在同一个文件再次序列化。 在Unity编辑器(Windows)中,它完美的工作,但是当我在iOS设备上testing它时,似乎我可以使用WWW类从StreamingAssets读取,但是我无法写入它。 另外我发现我可以读写由Application.persistentDataPath创build的path。 但似乎在设备的位置,我不能把我的XML到该位置,用户有权访问该文件夹,所以这不是很好的解决scheme,不是吗? 这里用来加载和保存数据的代码。 using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using System.Xml.Serialization; using System.IO; using System.Xml; public class testxml : MonoBehaviour { public Text result; public InputField firstPart, secondPart; public Toggle toggle; private List<int> listToSave; // Use this for initialization void Start () { listToSave = new List<int>(); } public void Save() […]

下次启动应用程序时,我可以解除本地通知吗?

我知道当用户在通知中心点击此通知时,我可以取消通知。 但是我可以在其他地方取消通知,我无法从系统获得相关的本地通知。 我可以序列化本地通知,并在下次运行应用程序时取消它? 对不起,让你误会! 我想在通知中心解散已发布的通知,但不是预定的通知。 所以我想问的是如何保存本地通知对象,然后我可以使用它在下次启动应用程序时自行解除。 也许这个工作不能用现在的SDK来完成。

NSPropertyListSerialization propertyListWithData产生不兼容的转换警告/错误

我试图从plist中读取数据,使用下面的代码: NSString *error; NSData * tempData = [[NSData alloc] initWithContentsOfFile:@"Data.plist"]; NSDictionary *temp = [NSPropertyListSerialization propertyListWithData:tempData options:NSPropertyListImmutable format:NSPropertyListXMLFormat_v1_0 error:&error]; 它踢出了一个警告/错误,指出: “不兼容整数到指针转换发送'int'到'NSPropertyListFormat'(又名'unsigned int *')types的参数。 我不知道发生了什么事。 我从代码提示select中select了NSPropertyListXMLFormat_v1_0。 另外,到目前为止,在文档中我找不到这样的理由:为什么你必须为“error”声明一个指针variables,然后使用“&error”作为错误的参数: 什么是&符号?

使用JSON编码器将types为Codable的variables编码

我设法得到JSON和P列表编码和解码工作,但只能直接调用特定对象的编码/解码function。 例如: struct Test: Codable { var someString: String? } let testItem = Test() testItem.someString = "abc" let result = try JSONEncoder().encode(testItem) 这工作正常,没有问题。 但是,我想获得一个函数,只接受Codable协议一致性types并保存该对象。 func saveObject(_ object: Encodable, at location: String) { //Some code let data = try JSONEncoder().encode(object) //Some more code } 这会导致以下错误: 无法用types为“(Encodable)”的参数列表调用“encode” 看着编码函数的定义,好像应该可以接受Encodable,除非Value是一些我不知道的奇怪types。 open func encode<Value>(_ value: Value) throws -> Data where […]

iOS Swift:保存一个自定义类的数组

我是编程新手。 我正在迅速为iOS做一个小数据库程序。 我有一个人课: class Person : NSObject { var firstName : String var lastName : String init (firstName : String, lastName : String) { self.firstName = firstName self.lastName = lastName } } 我在视图控制器的顶部声明了一个类的数组: var peopleArray = [Person]() 然后我通过声明一些示例用户来填充数组,并将其附加到数组中: var nateB = Person(firstName: "Nate", lastName: "Birkholz") var nateC = Person(firstName: "Nate", lastName: "Carson") var nateD = […]

如何使用RestKit将对象发布到rails?

我正在尝试使用RestKit和Rails来实现魔法。 我正在使用Rails 3.1.1和RestKit 0.9.3(不是主分支)。 我在我的iOS应用程序中使用核心数据,所以我试图设置应用程序使用尽可能多的RestKit魔术来与rails应用程序进行交互。 但是,我有一个问题试图POST一个新的对象到我的服务器来创build。 我已经成功地把对象取下来了。 这是我的代码来做到这一点: RKObjectManager* manager = [RKObjectManager objectManagerWithBaseURL:@"http://IP_ADDRESS"]; manager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"magikarp.sqlite"]; manager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES; manager.acceptMIMEType = RKMIMETypeJSON; manager.serializationMIMEType = RKMIMETypeJSON; /// /// Setup Routing /// RKObjectRouter *router = [[RKObjectRouter alloc] init]; [router routeClass:[List class] toResourcePath:@"/lists/(listID)"]; [router routeClass:[List class] toResourcePath:@"/lists" forMethod:RKRequestMethodPOST]; manager.router = router; /// /// Setup mapping for my […]

基于NSObject的类的iOS JSON序列化

我想要JSON序列化我自己的自定义类。 我在Objective-C / iOS5中工作。 我想要做的事情如下: Person* person = [self getPerson ]; // Any custom object, NOT based on NSDictionary NSString* jsonRepresentation = [JsonWriter stringWithObject:person ]; Person* clone = [JsonReader objectFromJson: jsonRepresentation withClass:[Person Class]]; 看来,NSJSONSerialization(和其他一些库)需要“人”类基于NSDictionary等我想要的东西,将序列化任何自定义对象,我关心定义(在合理的范围内)。 让我们设想Person.h如下所示: #import <Foundation/Foundation.h> @interface Person : NSObject @property NSString* firstname; @property NSString* surname; @end 我想为实例生成的JSON看起来类似于以下内容: {"firstname":"Jenson","surname":"Button"} 我的应用程序使用ARC。 我需要使用对象序列化和反序列化的东西。 非常感谢。

将iOS目标c对象转换为JSONstring

我有一个客观的C类, @interface message : NSObject { NSString *from; NSString *date; NSString *msg; } 我有这个消息类的实例的NSMutableArray。 我想使用iOS 5 SDK中的新JSONSerialization API将NSMutableArray中的所有实例序列化为JSON文件。 我怎样才能做到这一点 ? 是通过遍历NSArray中的每个元素的实例来创build每个键的NSDictionary? 有人可以帮助如何解决这个问题的代码? 我无法在Google中取得好成绩,因为“JSON”会将结果向服务器端调用和数据传输倾斜,而不是序列化。 非常感谢。 编辑: NSError *writeError = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:notifications options:NSJSONWritingPrettyPrinted error:&writeError]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"JSON Output: %@", jsonString);