如何解决为什么alloc返回nil? ( 目标-C )
我正在将 iOS opengl 游戏移植到 metal
使用金属角 https://github.com/kakashidinho/metalangle
我使用预编译的动态库
创建 MGLContext 时返回 nil
MGLContext * aaa = [MGLContext alloc];
aaa == nil
这是为什么?
我以为alloc只有在内存溢出时才会返回nil
解决方法
在现代 ObjC 中,it is not well-defined 只调用 +alloc
而不调用 init 方法:
您必须使用 init... 方法来完成初始化过程。例如:
TheClass *newObject = [[TheClass alloc] init];
这从来都不是一个好习惯,但您现在不能将分配和初始化分开。
也就是说,你是如何测试这个的?到目前为止,我还无法重现它。 MGLContext
本身可能是 nil
。如果动态库是 weakly linked 并且不存在,则会发生这种情况。
这是一个“弱链接”导致的问题
谢谢@RobNapier
谢谢大家
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。