菜鸟教程小白 发表于 2022-12-12 11:43:16

ios - 休息套件 : How to manually set the value of a managed object property?


                                            <p><p>RestKit中被对象管理器管理的托管对象属性的值如何手动设置?</p>

<p>我创建了一个带有持久存储的 RKObjectManager 用于核心数据持久性。</p>

<p>我向对象管理器添加了一个 RKEntityMapping 和一个 RKResponseDescriptor。</p>

<p>现在我可以像这样调用对象管理器了:</p>

<pre><code>[
getObjectsAtPath:@&#34;/path_to_ressource&#34;
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    // success
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    // report error
}];
</code></pre>

<p>并且数据很好地显示在 UITableView 中(我为此使用了 NSFetchedResultsController)。
一切看起来都很好,我的数据被持久化了。</p>

<p>现在我想向实体添加一个属性,该属性取决于响应描述符的键路径。
我应该怎么做?在哪里做?</p>

<p>我的第一次尝试:</p>

<p>我将属性添加到核心数据实体,然后我在上面代码的成功 block 中尝试了这个:</p>

<pre><code>for (Entity *s in mappingResult.dictionary[@&#34;CurrentEntities&#34;]) {
    s.isCurrent = ;
}

for (Entity *s in mappingResult.dictionary[@&#34;OldEntities&#34;]) {
    s.isCurrent = ;
}
</code></pre>

<p>假设 json 看起来像这样:</p>

<pre><code>{
    CurrentEntities: [{ id: 10, title: &#34;bhubhbhu&#34;}, { id: 11, title: &#34;ezeze&#34;}, ...],
    OldEntities: [{ id: 0, title: &#34;rf-reref&#34;}, { id: 1, title: &#34;vcvcvcvcv&#34;}, ...]
}
</code></pre>

<p>将新的本地属性设置为 YES 或 NO 后,我确实可以在我的表格 View 中看到结果,但看起来这些更改没有保留。</p>

<p>有什么想法吗?</p>

<p>编辑:</p>

<p>嗯,似乎保存上下文会使更改正确持久:</p>

<pre><code>NSError *error = nil;
[.mainQueueManagedObjectContext saveToPersistentStore:&amp;error];
</code></pre>

<p>编辑:</p>

<p>实际上看起来我必须在每个对象更改后保存上下文,否则我会收到 Core Data 错误。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如您所见,您只需保存所做的编辑即可。因为您尝试设置的值不基于用于下载数据的 URL 中的任何内容或有效负载数据(值)的内容,所以您最简单的选择就是后处理和保存。与映射过程进行交互并注入(inject)值将需要更多代码。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 休息套件 : How to manually set the value of a managed object property?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17066214/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17066214/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 休息套件 : How to manually set the value of a managed object property?