Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 神奇记录更新已获取的数据_Ios_Magicalrecord_Magicalrecord 2.1 - Fatal编程技术网

Ios 神奇记录更新已获取的数据

Ios 神奇记录更新已获取的数据,ios,magicalrecord,magicalrecord-2.1,Ios,Magicalrecord,Magicalrecord 2.1,这是数据库设计与许多关系。这是我的方法 -(void)fetchChannelData:(id)responseObject{ [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { NSArray *channels = [responseObject objectForKey:@"channels"] ; for (N

这是数据库设计与许多关系。这是我的方法

-(void)fetchChannelData:(id)responseObject{

            [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
                NSArray *channels = [responseObject objectForKey:@"channels"] ;
                for (NSDictionary *channelStack in channels) {
                    NSLog(@"Tenant id %@",[[ NSUserDefaults standardUserDefaults ] valueForKey:@"test"]);
                    ChannelsData *channels = [ChannelsData MR_importFromObject:channelStack inContext:localContext];
                    [channels setCategory:[[channelStack valueForKey:@"category"] firstObject]];
                    [channels setTenantID:[[ NSUserDefaults standardUserDefaults ] valueForKey:@"test"]];

                    NSArray *channelLogo = [channelStack objectForKey:@"channelImages"] ;
                    for (NSDictionary *channelLogoStack in channelLogo) {
                        ChannelImages *images = [ChannelImages MR_importFromObject:channelLogoStack inContext:localContext];
                        [channels addImagesObject:images];
                        [images setChannelID:channels.channelID];

                    }
                }
            } completion:^(BOOL contextDidSave, NSError *error) {
                if (contextDidSave) {
                    [self fetchListing];

                }
            }];





} 

我正在导入数据的位置。我在下拉列表中为特定数据选择了不同的API点。所有获取的数据都不同。现在的问题是,当我再次启动我的应用程序时,会再次调用服务,而不是更新数据,然后再次插入。我已经在每个实体上使用了relatedByAttribute,让它们的ID作为主键。]]

您好。如果数据库中已存在实体,则应从数据库中加载该实体,例如[CnannelData MR_findFirstWithPredicate:inContext:localContext]而不是[ChannelsData MR_importFromObject:channelStack inContext:localContext]。无论何时打开我的应用程序或现在调用登录Api,数据都会更新,但不是完整的数据,但它会返回以前记录的完整JSON。现在,它不会更新现有记录,而是将其作为新对象插入。如果服务器Api不支持增量缓存,这意味着,例如,您将在何时传输最后一个记录更新请求中的日期,服务器将计算更改,所以只需删除以前的记录,然后再次插入即可。或者手动合并更改..那么魔法记录中的relatedByAttribute呢?它值得使用吗?如何使用