Tag: restkit

如何使用restkit忽略发布对象上的空属性

我正在恢复原来使用RestKit 0.10的旧项目,现在正在使用RestKit 0.24。 旧的版本仍然有效,但不幸的是RestKit 0.10不是64位兼容的,因此不会提交到AppStore(无论如何现在肯定是时候更新了)。 我无法获得正确发布的对象。 在RestKit 0.10中,没有值的属性没有被发送到服务器,而它在RestKit 0.20中似乎是。 我已经试过明确地设置assignsDefaultValueForMissingAttributes为NO ,但似乎没有什么差别。 服务器需要以下格式: {"response": {"assessment_id":"1","time_taken":"60"}, "answer": [ {"question_number": 1, "answer_value": 3}, {"question_number": 2, "answer_value": 2}, {"question_number": 3, "answer_value": 1}, ] } 我已经设置了一个CompletedAssessment对象,它包含一个Response对象和一个Answer对象数组。 (请注意,当从服务器接收到这些对象时,需要接收比需要发送更多的属性)。 @interface CompletedAssessment : NSObject { Response *response; NSArray *answers; } @interface Answer : NSObject { NSNumber *identifier; NSNumber *responseId; NSNumber *questionNumber; NSString *answerHistory; […]

RestKit GET请求queryParameter:没有匹配responseDescriptor

我试图用Restkit做一个请求,但我得到以下错误: {Error Domain=org.restkit.RestKit.ErrorDomain Code=1001 "No mappable object representations were found at the key paths searched." UserInfo={NSLocalizedDescription=No mappable object representations were found at the key paths searched., NSLocalizedFailureReason=The mapping operation was unable to find any nested object representations at the key paths searched: This likely indicates that you have misconfigured the key paths for your mappings., […]

RestKit不会将recursionJSON映射到对象

编辑2由于我不明白的原因,将响应描述符直接添加到httpsRKManager,而不是应用程序分层,让RK识别“响应”响应描述符。 现在的问题是,似乎没有认识到“ErrorStatus”/结束编辑的属性映射 我有三个问题。 First Shops和recursion对象Shop不会显示为LLSResult对象的一部分。 其次这些对象不是从结果中填充的,第三,是否有办法完全跳过商店。 上下文是我正在将现有的应用程序从Ruby服务器迁移到具有不同api的.NET服务器。 复合事项。 两个星期前我从来没有碰过Mac。 更不用说任何生态系统了。 编辑2:响应描述符修复 NSString *path = [[ConfigManager sharedInstance] getEventsURL]; [[[AppCore sharedInstance] httpsRKManager]addResponseDescriptor: [RKResponseDescriptor responseDescriptorWithMapping:[LLSResponse jsonMapping] method:RKRequestMethodAny pathPattern:path keyPath:@"Response" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]]; // This didn work //[BaseRO addResponseDescriptorForPathPattern: [[ConfigManager sharedInstance] getEventsURL] // withMapping:[LLSResponse jsonMapping]]; 编辑2的日志: }用对象映射来对象(null) 2015-12-11 10:19:24.805 Clymb [5234:149794] D restkit.object_mapping:RKPropertyInspector.m:131对'LLSResponse'类进行caching属性检查:{ debugDescription = { isPrimitive = 0; keyValueCodingClass = […]

Restkit今天突然停止编译

我使用CocoaPods很久以来在我的项目中使用RestKit。 Podfile:pod 'RestKit', '~> 0.26.0' 今天,由于不明原因,我的项目不再编译。 据我所知,我没有改变任何项目设置或任何东西。 我得到RKObjectManager.h中的错误: /projects/iphone/Pods/Headers/Public/RestKit/Network/RKObjectManager.h:892:49: Unknown type name 'AFNetworkReachabilityStatus'; did you mean 'SCNetworkReachabilityFlags'? 如果我进入h.file并单击ReachabilityStatusEnum,我可以看到它,所以它似乎在那里虽然它说'未知types'。 我不知道如何解决这个问题。 当我很久以前设置它时,我遵循了RestKit cocoapods指令。 难道是因为我最近升级了xcode? 非常感谢指针…

Reskit对象映射返回具有零属性的模型对象

我试图映射RSS源的项目。 RKObjectRequestOperation返回确切的对象数量,但属性值为零。 以下是我的代码 NSURL *requestURL = [NSURL URLWithString:@"http://sports.espn.go.com/espn/rss/nfl/news"]; [RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"application/rss+xml"]; RKObjectMapping *rssFeedObjectMapping = [RKObjectMapping mappingForClass:[SBRssFeed class]]; [rssFeedObjectMapping addAttributeMappingsFromDictionary:@{ @"title" : @"title", @"link" : @"link" }]; RKResponseDescriptor *rssFeedResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:rssFeedObjectMapping pathPattern:nil keyPath:@"rss.channel.item" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; RKObjectRequestOperation *requestOperation = [[RKObjectRequestOperation alloc]initWithRequest:[NSURLRequest requestWithURL:requestURL] responseDescriptors:@[rssFeedResponseDescriptor]]; [requestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { _datasourceArray = mappingResult.array; NSLog(@"Count %d", _datasourceArray.count); [self.tableView […]

Restkit授权标题消失

我已经到处搜寻,这个应该是微不足道的问题比我想要的要花的时间还要长,因此我正在向你寻求帮助。 我正在使用cocoapods使用快速和集成的restkit。 尽pipe你可以看到截图/日志,但是头部没问题,但是传出的http数据包并不一致。 AppDelegate中: RKlcl_configure_by_name("RestKit/Network", RKlcl_vTrace.value); RKlcl_configure_by_name("RestKit/ObjectMapping", RKlcl_vTrace.value); ObjectManagerCode: let objectManager: RKObjectManager = RKObjectManager(baseURL: NSURL(string: Endpoints.BaseUrl.toString())) objectManager.requestSerializationMIMEType = RKMIMETypeJSON; let username = "TestUser" let password = "password" objectManager.HTTPClient.setAuthorizationHeaderWithUsername(username, password: password) objectManager.HTTPClient.setDefaultHeader("whatIWantForChristmas", value: "You") objectManager.HTTPClient.allowsInvalidSSLCertificate = true 请求: var requestUrl = cds.objectManager!.requestWithObject( nil, method: RKRequestMethod.GET, path: endpoint.path, parameters: endpoint.parameters()) cds.objectManager!.getObjectsAtPath( endpoint.path, parameters: endpoint.parameters(), success: { (RKObjectRequestOperation, […]

RestKit:如何手动设置托pipe对象属性的值?

如何在对象pipe理器pipe理的情况下手动设置RestKit中托pipe对象属性的值? 我创build了一个具有核心数据持久性持久性存储的RKObjectManager。 我添加了一个RKEntityMapping和一个RKResponseDescriptor对象pipe理器。 现在我可以这样调用对象pipe理器: [[RKObjectManager sharedManager] getObjectsAtPath:@"/path_to_ressource" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { // success } failure:^(RKObjectRequestOperation *operation, NSError *error) { // report error }]; 数据显示在一个UITableView(我正在使用NSFetchedResultsController)。 一切看起来不错,我的数据是持久的。 现在我想添加一个属性到依赖于响应描述符的keypath的实体。 我应该怎么做,在哪里? 我第一次尝试: 我将属性添加到核心数据实体,然后我在上面提供的代码的成功块中尝试了这一点: for (Entity *s in mappingResult.dictionary[@"CurrentEntities"]) { s.isCurrent = [NSNumber numberWithBool:YES]; } for (Entity *s in mappingResult.dictionary[@"OldEntities"]) { s.isCurrent = [NSNumber numberWithBool:NO]; } 假设json看起来像这样: { […]

RestKit iOS:简单的请求错误

我是iOS开发的新手,目前我正在用xCode 4.2testingRestKit 0.9.3 for iOS,我遇到了一些简单的get请求的问题。 我遵循这个教程: https : //github.com/RestKit/RestKit/wiki/Tutorial-%3A-Introduction-to-RestKit 我尝试在TouchUpInside的UIButton上发送一个简单的获取请求到我的web服务。 但是我收到一个“EXC_BAD_ACCESS”: [6373:fb03] *** -[DataAccess respondsToSelector:]: message sent to deallocated instance 0x8275160 应用程序停在RKRequest.m文件的这一行: if ([self.delegate respondsToSelector:@selector(requestDidStartLoad:)]) { [self.delegate requestDidStartLoad:self]; } 我的代码: MyViewController.m: – (IBAction)myAction:(id)sender { DataAccess *data = [DataAccess alloc]; [data sendRequests]; } DataAccess.m: @implementation DataAccess -(void)sendRequests { [RKClient clientWithBaseURL:SERVER_URL username:SERVER_USERNAME password:SERVER_PASSWORD]; [[RKClient sharedClient] get:@"/myDistantAction" delegate:self]; […]

使用RestKit,使用block来加载对象,何时以及如何取消请求?

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"app/site_pattern" usingBlock:^(RKObjectLoader* loader) { [loader setObjectMapping:clientMappring]; loader.delegate = self; shopLoader = loader; }]; 以上,我使用块函数来加载我的应用程序中的一些数据,但是当我popup这个viewcontroller,我不知道何时以及如何取消这个请求。 任何想法? – (void)showSelectShop { SelectShopViewController * selectShopViewController = [[SelectShopViewController alloc] initWithNibName:@"SelectShopViewController" bundle:nil]; [self.navigationController pushViewController:selectShopViewController animated:YES]; } 更多: 我尝试在viewDidUnload中取消它 – (void)viewDidUnload { [super viewDidUnload]; [shopLoader cancel]; } 但它没有工作。 我仍然有错误。

RestKit:无法使用coredata执行映射

我正在使用rest套件0.20.3和Xcode 5.如果没有核心数据,我可以执行所有rest套件操作,但是当我用核心数据尝试过时,由于某些原因,我甚至无法执行GET问题。 我无法弄清楚。 我是新的核心数据。 所以请帮助。 这是我的代码: AppDelegate.m @implementation CardGameAppDelegate @synthesize managedObjectContext = _managedObjectContext; @synthesize managedObjectModel = _managedObjectModel; @synthesize persistentStoreCoordinator = _persistentStoreCoordinator; – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RKLogConfigureByName("RestKit", RKLogLevelWarning); RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace); RKLogConfigureByName("RestKit/Network", RKLogLevelTrace); RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://192.168.1.3:3010/"]]; RKManagedObjectStore *objectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:self.managedObjectModel]; objectManager.managedObjectStore = objectStore; RKEntityMapping *playerMapping = [RKEntityMapping mappingForEntityForName:@"Player" inManagedObjectStore:objectStore]; [playerMapping […]