如何将我在plist中保存的数据与Web服务器同步?

时间:2017-07-10 05:26:30

标签: ios objective-c xcode8

我正在使用plist在网络连接不可用时在本地保存我的数据,当网络可用时,我想将本地保存的数据同步到Web服务器。

我正在使用此代码。但我不知道数据是否保存在服务器中。

NSURLSessionConfiguration * configuration = [NSURLSessionConfiguration defaultSessionConfiguration];     AFURLSessionManager * manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = [NSURL URLWithString:@"http://example url"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSURL *filePath = [NSURL fileURLWithPath:@"file://my plist file"];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"Success: %@ %@", response, responseObject);
    }
}];
[uploadTask resume];

我将api分配给我想要保存plist数据的URL,并将我的plist分配到已保存数据的文件路径中。任何人都可以解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为你使用普通的API调用来存储pList文件到服务器。 因为当您阅读plist文件时,您将在NSDictionary中将数据发送到商店。

从plist读取值:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"YOUR_PLIST_NAME" ofType:@"plist"];
NSDictionary *dicData = [NSDictionary dictionaryWithContentsOfFile:plistPath];

要将此词典发送到服务器,您可以使用AFNetworking

将plude存储到plist:

 NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsPath = paths.firstObject;
 NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"File.plist"];
 NSError *writeError = nil;
 NSDictionary *finalDict = @{@"Objects": objects};
 NSData *plistData = [NSPropertyListSerialization dataWithPropertyList:finalDict format:NSPropertyListXMLFormat_v1_0 options:NSPropertyListImmutable error:&writeError];
 if(plistData){
     [plistData writeToFile:plistPath atomically:YES];
 }
 else {
     NSLog(@"Error in saveData: %@", error);
 }