Ios AF2和解析:错误404
我一直在尝试使用Parse.com的RESTAPI和AFNetworking与之通信。(我没有使用他们的iOS SDK,因为我想使用核心数据,而它似乎不允许这样做)Ios AF2和解析:错误404,ios,parse-platform,afnetworking-2,Ios,Parse Platform,Afnetworking 2,我一直在尝试使用Parse.com的RESTAPI和AFNetworking与之通信。(我没有使用他们的iOS SDK,因为我想使用核心数据,而它似乎不允许这样做) 无论如何,几天前我开始学习AFNetworking,遇到了一个问题——我总是遇到错误404 下面是我的AFHTTPSessionManager的简单子类: #import "ParseHTTPClient.h" static NSString * const ParseAppID = @"---"; static NSString
无论如何,几天前我开始学习AFNetworking,遇到了一个问题——我总是遇到错误404 下面是我的AFHTTPSessionManager的简单子类:
#import "ParseHTTPClient.h"
static NSString * const ParseAppID = @"---";
static NSString * const ParseRESTAPI = @"---";
static NSString * const ParseURLString = @"https://api.parse.com/v1/";
@implementation ParseHTTPClient
+ (ParseHTTPClient *)sharedClient
{
static ParseHTTPClient *_sharedParseHTTPClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedParseHTTPClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:ParseURLString]];
});
return _sharedParseHTTPClient;
}
- (instancetype)initWithBaseURL:(NSURL *)url
{
self = [super initWithBaseURL:url];
if (self) {
self.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
self.requestSerializer = [AFJSONRequestSerializer serializer];
[self.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[self.requestSerializer setValue:ParseAppID forHTTPHeaderField:@"X-Parse-Application-Id"];
[self.requestSerializer setValue:ParseRESTAPI forHTTPHeaderField:@"X-Parse-REST-API-Key"];
}
return self;
}
- (void) addTodo
{
NSDictionary *parameters = @{@"description":@"Hello World!"};
self.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/html", nil];
[self POST:@"classes/Todo" parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"Yay! %@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Error! %@",error);
}];
}
@end
不幸的是,当我调用addTodo时,我会注销此项:
错误!错误域=NSCOCAERRORDOMAIN代码=3840“操作
无法完成。(Cocoa错误3840。)(周围的值无效
字符0。)UserInfo=0x8f6db80{NSDebugDescription=无效值
在字符0附近,NSUnderlyingError=0x8f6c600“请求失败:未
找到(404)“}
几天来我一直在寻找解决办法,最后还是来了。。请帮忙(:
谢谢!奇怪……我有一个应用程序同时使用解析数据和核心数据。在这方面,它也使用了StackMob。显然,您需要检索PFObjects create ManagedObjects并手动添加它们。@MDB983当您更改对象时,如何将这些更改保存到解析数据和核心数据?您显然有一个so键我排序,只需单独更新它们,并提出某种形式的同步。我的挑战是我需要“数据”即使在不在线的情况下,本地数据存储也是唯一的选择。为了与其他用户进行通信,我将Parse作为后端数据存储实现。然后,我在在线时执行手动同步。Parse SDK中没有任何东西可以阻止这一点,因此,我不认为使用REST API和SDK对pr有什么不同更新/同步的问题。@MDB983在使用Parse时,我应该将PFObject子类化,因为否则我将没有save方法,但在使用Core Data时,我应该将NSManagedObject子类化。使用REST API,即使我将NSManagedObject子类化,我也可以将其保存到Parse。在使用这两种方法时,您是如何保存对象的?我有两种方法可以从NSManagedObjects创建json对象,反之亦然。实际上,从NSManagedObjects创建json只需要做些工作。