菜鸟教程小白 发表于 2022-12-11 19:19:56

ios - 从核心数据列表中删除 NSEntityDescription 对象


                                            <p><p>我想从核心数据中删除我所有的 NSEntityDescription 对象并释放内存。 <code>reset</code> 功能对内存没有任何影响</p>

<p>以下是我的代码</p>

<pre><code>-(void)generatePersons: (NSManagedObjectContext *)privatecontext{
    self.persons = [init];

    [privatecontext performBlockAndWait:^{
      for(int i = 1; i&lt; self.dataRows.count; i++){
            NSArray *HeaderRow = ;
            NSArray *dataRow = ;

            if (dataRow.count &lt;=HeaderRow.count){
                int index = 0;

                Person *person = (Person *)[NSEntityDescription
                                          insertNewObjectForEntityForName:@&#34;Person&#34;
                                          inManagedObjectContext:privatecontext];



                ;


            }
      }

      ;

    }];
}
</code></pre>

<p>此代码 <code>;</code> 理论上将上下文设置为其基本状态,据我了解,它也会释放内存,但它不会并保持相同的内存计数</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>尝试在 block 中使用对 self 的弱引用。</p>

<p>在 block 的内联声明之前创建引用:</p>

<p><code>__weak __block __typeof(&*self)weakself = self;</code></p>

<p>然后使用 <code>weakself</code> 代替 <code>self</code> 那里。这可能会阻止线程释放其内存。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从核心数据列表中删除 NSEntityDescription 对象,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42953761/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42953761/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从核心数据列表中删除 NSEntityDescription 对象