0

我对目标 C 很陌生,并按照我找到的一些说明进行操作,但此刻我被卡住了。

我正在尝试使用以下代码加载图像:

NSBitmapImageRep *img;
img = [NSBitmapImageRep imageRepWithContentsOfFile:filename];

“文件名”是一个有效的指针。但是编译器告诉我:

Incompatible pointer types assigning to 'NSBitmapImageRep *' from 'NSImageRep * _Nullable' 

我错过了什么或做错了什么?

4

1 回答 1

0

imageRepWithContentsOfFile:是一种工厂方法。根据文档,它返回“NSImageRep 子类的初始化实例,如果无法读取图像数据,则返回 nil”。From NSImageRep.h:“如果发送到子类,仅针对该子类理解的类型。”。因此,您只需要将结果转换为指定类型:

NSBitmapImageRep *imgRep = (NSBitmapImageRep *)[NSBitmapImageRep imageRepWithContentsOfFile:filename];

请注意,通常您不需要NSBitmapImageRep自己创建实例,并且可以使用NSImage.

于 2016-02-28T11:02:53.367 回答