IOS /核心数据:解析ManagedObject ObjectID以获取AutoIncrement Number

时间:2015-05-04 15:31:19

标签: ios core-data objectid

[post][1]之后,我试图解析ManagedObject中ObjectID的数字部分,其中自动增量显然位于通常不通过核心数据api公开的情况下。但是,我总是得到0作为回应。

有没有其他人这样做过,或者有人能看出为什么这不起作用?提前感谢任何建议。

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:self.managedObjectContext];

    Items *newItem = [[Items alloc]initWithEntity:entity insertIntoManagedObjectContext:self.managedObjectContext];
    NSURL *url = [[newItem objectID] URIRepresentation];
    //get full url
    NSString *url_string = [url absoluteString];
        //split with a /
    NSArray *parts = [url_string componentsSeparatedByString:@"/"];

    NSString *last_segment=[parts objectAtIndex:[parts count]-1];

    //p#
    NSString *number_part = [last_segment stringByReplacingOccurrencesOfString:@"p" withString:@""];

    NSUInteger auto_id = [number_part integerValue];

    number_part =nil;
    last_segment=nil;
    parts=nil;
    url=nil;
    url_string=nil;
    NSUInteger final_id = auto_id;
    NSLog(@"NOW DISPLAYING AUTOID: autoid is:%lu",(unsigned long)final_id);

1 个答案:

答案 0 :(得分:0)

汤姆哈灵顿提到,这是一个绝对可怕的想法。这是未记录的,可以并且将会改变,并且您无法保证它将在应用程序的生命周期之间继续增加。

创建您自己的唯一标识符,不要依赖-objectID