我对目标C很新,并按照我发现的一些指示,但此刻我被卡住了。
我正在尝试使用以下代码加载图像:
NSBitmapImageRep *img;
img = [NSBitmapImageRep imageRepWithContentsOfFile:filename];
“filename”是一个有效的指针。但是编译器告诉我:
Incompatible pointer types assigning to 'NSBitmapImageRep *' from 'NSImageRep * _Nullable'
我错过了什么或做错了什么?
答案 0 :(得分:0)
imageRepWithContentsOfFile:
是一种工厂方法。根据文档,它返回" NSImageRep子类的初始化实例,如果无法读取图像数据,则返回nil。"从NSImageRep.h
:"如果发送到子类,则仅针对该子类理解的类型执行此操作。"。因此,您只需要将结果转换为指定类型:
NSBitmapImageRep *imgRep = (NSBitmapImageRep *)[NSBitmapImageRep imageRepWithContentsOfFile:filename];
请注意,通常您不需要自己创建NSBitmapImageRep
个实例,并且可以使用NSImage
。