这是代码:

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"];


这是我在setValue:comic.iComicId forKey@"ComicID"上收到的警告。仅供参考-漫画是我自己的课程,其中包含漫画的详细信息。
警告:传递'setValue:forKey:'的参数1会使指针从整数转换而无需强制转换

当我将代码行更改为:

[newComic setValue:[comic.iComicId intValue] forKey:@"ComicID"];


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

我究竟做错了什么?

最佳答案

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

[newComic setValue:[NSNumber numberWithInt:[comic.iComicId intValue]] forKey:@"ComicID"];

关于iphone - 当使用setValue:forKey:和int时,CoreData为实体插入新对象给我错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4638079/

10-13 06:13