在使用setValue时,CoreData为实体插入新对象时给出了错误:forKey:with int

Mau*_*imo 0 iphone core-data objective-c ios

这是代码:

ComicDB * newComic = (ComicDB *)[NSEntityDescription insertNewObjectForEntityForName:@"ComicDB" inManagedObjectContext:context];
            [newComic setValue:comic.iComicId forKey:@"ComicID"];
            [newComic setValue:comic.sImage forKey:@"Image"];
            [newComic setValue:comic.sName forKey:@"Name"];
            [newComic setValue:comic.sText forKey:@"Text"];
            [newComic setValue:comic.sComicURL forKey:@"URL"];
Run Code Online (Sandbox Code Playgroud)

这是我得到的警告setValue:comic.iComicId forKey@"ComicID".仅供参考 - 漫画是我自己的类,其中包含漫画细节.警告:传递'setValue:forKey:'的参数1使得整数指针没有强制转换

当我将代码行更改为:

[newComic setValue:[comic.iComicId intValue] forKey:@"ComicID"];
Run Code Online (Sandbox Code Playgroud)

我得到这些警告和错误:警告:无效的接收器类型'int'警告:传递'setValue:forKey:'的参数1使得整数指针没有强制转换

我究竟做错了什么?

Bol*_*ock 6

如果comic.iComicId不是NSNumber,则需要将其包装在NSNumber对象中然后传递它:

[newComic setValue:[NSNumber numberWithInt:[comic.iComicId intValue]] forKey:@"ComicID"];
Run Code Online (Sandbox Code Playgroud)