我试图声明一些CoreGraphics函数,特别是CGRectMake
并且它一直告诉我找不到符号。
文档说我需要导入CoreGraphics:https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGGeometry/index.html#//apple_ref/c/func/CGRectMake
我的CoreGraphics的路径是/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
;如何找到适合此功能的库?我是从ctypes做的。
顺便说一句,从阅读文档看来,它似乎只是设置一个CGRect并填充它的宽度,高度,x和y这是真的吗? (在这种情况下,我不需要费心去宣布它,它很简单)。
答案 0 :(得分:1)
您要么缺少导入,要么在其他地方阻止编译器在上下文中查看此内容或输入错误。
在过去的几个OS X版本中,CGRect和NSRect是完全相同的。在构建也将为iOS编译的代码时,您只需要使用CGRect。
答案 1 :(得分:1)
如果您想要添加CoreGraphics Framework,那么:
1. Select Target
2. Build Phases
3. Link Binary With Libraries
4. +
5. CoreGraphics.framework
6. Add
答案 2 :(得分:1)
最后我无法导出函数,所以我必须使用的解决方案是自己定义函数,我猜它只是返回一个带填充字段的矩形并且工作正常:)
CGRectMake: function() {
/* https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGGeometry/index.html#//apple_ref/c/func/CGRectMake
* CGRect CGRectMake (
* CGFloat x,
* CGFloat y,
* CGFloat width,
* CGFloat height
* );
*/
/******* does not work
return lib('CoreGraphics').declare('CGRectMake', self.TYPE.ABI,
self.TYPE.CGRect, // return
self.TYPE.CGFloat, // x
self.TYPE.CGFloat, // y
self.TYPE.CGFloat, // width
self.TYPE.CGFloat // height
);
*/
return function(x, y, width, height) {
return self.TYPE.CGRect(
self.TYPE.CGPoint(x, y),
self.TYPE.CGSize(width, height)
);
};
}