首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios/objective/core-data: managedobjectcontext类语法中的调用方法

ios/objective/core-data: managedobjectcontext类语法中的调用方法
EN

Stack Overflow用户
提问于 2015-05-03 16:17:53
回答 1查看 221关注 0票数 0

我试图遵循方法在核心数据中创建一个自动递增字段,以便与运行SQL的web服务器进行同步。

然而,当我试图调用这个方法时,我得到了“没有已知的类方法.”

这应该是微不足道的,所以它是非常令人沮丧的。我是否有错误,或者有人能指出我在这个简单的方法调用中做错了什么?谢谢。

代码语言:javascript
复制
Item.h

-(NSUInteger)autoId;

Item.m

-(NSUInteger) autoId {
    
    NSURL *url = [[self 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;
    
    
    return auto_id;
    
}

AddItem.m

#import "Items.h"


/within save method

  NSUInteger autoid = [Items autoId];//error here

这些错误是“没有已知的选择器autoId类方法”和(警告)“不兼容的整数转换指针,初始化NSUInteger (即用id类型的表达式进行无符号长)”。

谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-03 17:49:03

意识到我忘记在调用对象之前实例化它。因为它是一个NSManagedObject,所以它应该实例化如下:

代码语言:javascript
复制
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:self.managedObjectContext];

    Items *newItem = [[Items alloc]initWithEntity:entity insertIntoManagedObjectContext:self.managedObjectContext];

           NSUInteger autoid = [newItem autoId];

很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30016200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档