发现iOS里有很多类似CGContextRef这样的定义,查看api文档发现是定义为指向一个结构的指针
typedef struct CGContext * CGContextRef;
不知道这样的用法是出于什么样的考虑才这么用的。是单纯了为了应用不同环境而区别命名还是说有内存使用方面的考虑?望高手指教
发现iOS里有很多类似CGContextRef这样的定义,查看api文档发现是定义为指向一个结构的指针
typedef struct CGContext * CGContextRef;
不知道这样的用法是出于什么样的考虑才这么用的。是单纯了为了应用不同环境而区别命名还是说有内存使用方面的考虑?望高手指教
基本是就是Taoge回答的。CGContextRef这样的指针是C的指针,和Cocoa的对象指针有差别。最常见的就是现在大家都用ARC来管理内存,Cocoa对象被申请了就不需要程序员再去考虑怎么释放它,编译器会帮我们的忙。而你用了CGContextRef这样的指针,编译器不会帮你的忙,你需要自己决定何时用完,何时释放。
Cocoa本身也是要用这些底层技术的帮助才能写出来的,C语言万岁!Apple帮助Mac/iOS程序员,Apple万岁!
1 回答1.1k 阅读
1 回答678 阅读
873 阅读
1 回答545 阅读
1 回答481 阅读
468 阅读
Ref是CoreFoundation对象的命名规则。看到Ref结尾就知道这是一个CF对象了。