菜鸟教程小白 发表于 2022-12-13 04:50:46

iOS 核心数据更新 : changes not saved


                                            <p><p>我正在尝试在我的 iPad 应用程序中使用 Core Data。</p>

<p>我有一个这样的模型:</p>

<p>客户.h</p>

<pre><code>#import &lt;CoreData/CoreData.h&gt;
@interface Customer : NSManagedObject
@property (nonatomic,strong) NSString *name;
@end
</code></pre>

<p>客户.m</p>

<pre><code>#import &#34;Customer.h&#34;
@implementation Customer
@synthesize name;
@end
</code></pre>

<p>表格 ViewController 显示数据库中的所有客户。通过选择客户,将启动详细信息 View 推送序列并设置客户:</p>

<pre><code>- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using .
    // Pass the selected object to the new view controller.

    CustomerDetailViewController *detailViewController = (CustomerDetailViewController*)   ;
    detailViewController.customer = ;
}
</code></pre>

<p>在详细 ViewController 中,如果更改,操作保存应该保存客户:</p>

<pre><code>- (IBAction)save:(id)sender
{
AppDelegate *delegate = (AppDelegate*)[ delegate];
NSManagedObjectContext *moc = ;
self.customer.name = self.nameTextField.text;
NSError *error;
if (!)
{
    NSLog(@&#34;Can&#39;t Save! %@ %@&#34;, error, );
}
}
</code></pre>

<p>虽然改了名字,但没有保存更改:虽然没有出现错误(错误为零,日志未显示)... </p>

<p>此外:</p>

<pre><code>BOOL customerHasChanges = ;
BOOL mocHasChanges = ;
</code></pre>

<p>都是假的!</p>

<p>但是插入新实体可以正常工作:</p>

<pre><code>Customer *customer = ;
;
NSError *error;
;
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您的实现文件中有错误。使用 <code>@dynamic</code> 而不是 <code>@synthesize</code>。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 核心数据更新 : changes not saved,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19477604/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19477604/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 核心数据更新 : changes not saved