小编use*_*765的帖子

RestKit性能和核心数据

只需要下载9,000个物体,RestKit的性能就会慢得令人无法接受 - 它在模拟器上花费了10分钟,在iPad Mini上花费了不确定的时间.

我有几个表,我从一个安静的界面下载.这一切都有效,但似乎存在指数尺度问题,当有许多对象时,这个问题变得无法忍受.下表遇到的问题最多:

optionMapping.identificationAttributes = @[@"optionID"];

// OptionType
RKEntityMapping *optionTypeMapping = [RKEntityMapping mappingForEntityForName:@"OptionType" inManagedObjectStore:rkMOS];
[optionTypeMapping addAttributeMappingsFromDictionary:@{
 @"id" : @"optionTypeID",
 @"option_type" : @"optionType",}];

optionTypeMapping.identificationAttributes = @[@"optionTypeID"];
Run Code Online (Sandbox Code Playgroud)

属性optionTypeID在Core Data中编制索引,不是可选的.

与其他表有一些关系,我将其映射如下:

// Option.optionType -> OptionType

[optionMapping addConnectionForRelationship:@"optionType" connectedBy: @"optionTypeID"];

// Option.unit -> Unit

[optionMapping addConnectionForRelationship:@"unit" connectedBy:@"unitID"];
Run Code Online (Sandbox Code Playgroud)

这些似乎不是问题 - 我评论了它们,下载仍然非常非常慢.

我设置了一个响应描述符(这是一个目录,所以我只需要下载它).请注意,以下代码显示了所有表的设置.

NSArray *reqA = @[@{@"endpoint" : API_VENDORS_ENDPOINT,
                    @"mapping" : vendorMapping},

                  @{@"endpoint" : API_OPTION_TYPES_ENDPOINT,
                    @"mapping" : optionTypeMapping},

                  @{@"endpoint" : API_OPTIONS_ENDPOINT,
                    @"mapping" : optionMapping},

                  @{@"endpoint" : API_UNITS_ENDPOINT,
                    @"mapping" : unitMapping},

                  @{@"endpoint" : API_PRICE_TIERS_ENDPOINT,
                    @"mapping" …
Run Code Online (Sandbox Code Playgroud)

ios restkit

15
推荐指数
1
解决办法
849
查看次数

标签 统计

ios ×1

restkit ×1