【问题标题】:Last row id always return zero in Core Data最后一行 id 在核心数据中总是返回零
【发布时间】:2013-02-13 11:46:51
【问题描述】:
  NSString *strMQueryupdate =[NSString stringWithFormat:@"insert into        Zpatient_info_image_note values ('%@','%@',NULL,'%@')",@"",autoNumberTextField.text,@""];

  NSManagedObjectContext *moc = [self managedObjectContext];

Patient_info_image_note *patientImageData = (Patient_info_image_note *)   [NSEntityDescription insertNewObjectForEntityForName:@"Patient_info_image_note" inManagedObjectContext:moc];

patientImageData.autonumber=autoNumberTextField.text;
patientImageData.patient_Info_Note_Image=@"";
patientImageData.noteDate=@"";
patientImageData.noteNumber=NULL;

[moc save:nil];
lastrowid=[[[[patientImageData objectID] URIRepresentation] absoluteString] intValue];

patientImageData=nil;

此代码中有什么不正确的地方?作为第二个选项,我是否应该创建另一个库,它保存从 0 开始的整数并将其递增 1,然后将其保存到数据库中,以便下次我可以通过计数检索最后一个递增的数字数组。

【问题讨论】:

    标签: ios core-data ios4 xcode4.2


    【解决方案1】:

    如果你打印[[[patientImageData objectID] URIRepresentation] absoluteString] 的值,你会得到类似:

    x-coredata://3BB81DA1-4516-45A0-8895-7FD710C74247/LapTime/p61

    试图得到它的 intValue 会给你 0。

    【讨论】:

    • 感谢您的回复,我可以使用核心数据中提供的任何自动增量列吗?
    • 不,没有,但是有 objectID(它是唯一的),但不会帮助您解决问题。您可以做的是添加您自己的属性(NSNumber)。然后,无论何时,您都可以使用键(您的属性)上的排序描述符对数据数组进行排序,或者获取 maxValue(使用聚合函数 @max.id)。
    猜你喜欢
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多