Ios 如何将plist中保存的数据与web服务器同步?

Ios 如何将plist中保存的数据与web服务器同步?,ios,objective-c,xcode8,Ios,Objective C,Xcode8,当网络连接不可用时,我使用plist在本地保存数据,当网络可用时,我希望将本地保存的数据同步到web服务器 我正在使用这个代码。但我不知道数据是否保存在服务器中 NSURLSessionConfiguration*配置=[NSURLSessionConfiguration defaultSessionConfiguration]; AFURLSessionManager*管理器=[[AFURLSessionManager alloc]初始化与会话配置:配置] NSURL *URL = [NSUR

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

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

NSURLSessionConfiguration*配置=[NSURLSessionConfiguration defaultSessionConfiguration]; AFURLSessionManager*管理器=[[AFURLSessionManager alloc]初始化与会话配置:配置]

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分配给已经保存数据的文件路径。任何人都可以解决这个问题。

我认为您可以使用普通的API调用将存储的pList文件发送到服务器因为当您读取plist文件时,您将在NSDictionary中保存数据,并将其发送到服务器存储。

要从plist读取值,请执行以下操作:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"YOUR_PLIST_NAME" ofType:@"plist"];
NSDictionary *dicData = [NSDictionary dictionaryWithContentsOfFile:plistPath];
要将此词典发送到服务器,可以使用

要将值存储到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);
 }

我认为您可以使用普通的API调用将pList文件存储到服务器因为当您读取plist文件时,您将在NSDictionary中保存数据,并将其发送到服务器存储。

要从plist读取值,请执行以下操作:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"YOUR_PLIST_NAME" ofType:@"plist"];
NSDictionary *dicData = [NSDictionary dictionaryWithContentsOfFile:plistPath];
要将此词典发送到服务器,可以使用

要将值存储到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);
 }


您是否实现了任何即使在后台也能持续检查互联网可用性的代码?首先,上传是第二件事。在这里寻找答案。然后在ReachableViaWWAN或ReachableViaWiFi案例中添加您可能在项目中使用的上载代码。是的,当然我已经实现了检查网络连接的代码,然后包括afnetworking via pods,并在afnetworking文档下查找上载代码段。将文件名替换为plist。请给出一个示例代码。在中的“创建上载任务”下查看,您是否实现了任何代码,即使在后台也可以持续检查internet可用性?首先,上传是第二件事。在这里寻找答案。然后在ReachableViaWWAN或ReachableViaWiFi案例中添加您可能在项目中使用的上载代码。是的,当然我已经实现了检查网络连接的代码,然后包括afnetworking via pods,并在afnetworking文档下查找上载代码段。将文件名替换为plist。请给出一个示例代码。请在“我的项目”中的“创建上载任务”下查看,原因是“[NSURL initFileURLWithPath:]:nil字符串参数”如何检查我以前在项目中保存的plist数据我已在bundle中创建了plist文件或您的存储在缓存中??我已将其存储在bundlemy项目中崩溃,原因是“[NSURL initFileURLWithPath:]:nil string参数”如何检查我以前保存的plist数据在我的项目中,我已经创建了一个plist文件,它是在bundle中还是在缓存中?我已经在bundle中存储了它