我有没有办法在C中使用目标c类型,例如NSRange,CGRect等(它们是结构体)?
我正在使用objective C运行时来访问objective c类,但是一些方法返回并接受objective c结构类型,而我的问题是如何使用从C返回的objective c结构?
发布于 2013-06-27 22:59:20
假设你导入了正确的头文件,你当然可以,就是那些简单的C结构。具体地说,您会发现NSRange在<Foundation/NSRange.h>中定义,CGRect在<CoreGraphics/CGGeometry.h>中定义。
在NSRange、CGRect和类似的结构中没有Objective-C-specific。
发布于 2013-06-27 23:00:47
NSRange可以由define简单使用:
typedef struct {
unsigned long location;
unsigned long length;
} NSRange;CGRect有点棘手:
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
typedef float CGFloat; // 32-bit
typedef double CGFloat; // 64-bithttps://stackoverflow.com/questions/17346562
复制相似问题