首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C++中的objective c类型

使用C++中的objective c类型
EN

Stack Overflow用户
提问于 2013-06-27 22:56:48
回答 2查看 120关注 0票数 5

我有没有办法在C中使用目标c类型,例如NSRangeCGRect等(它们是结构体)?

我正在使用objective C运行时来访问objective c类,但是一些方法返回并接受objective c结构类型,而我的问题是如何使用从C返回的objective c结构?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-27 22:59:20

假设你导入了正确的头文件,你当然可以,就是那些简单的C结构。具体地说,您会发现NSRange<Foundation/NSRange.h>中定义,CGRect<CoreGraphics/CGGeometry.h>中定义。

NSRangeCGRect和类似的结构中没有Objective-C-specific。

票数 7
EN

Stack Overflow用户

发布于 2013-06-27 23:00:47

NSRange可以由define简单使用:

代码语言:javascript
复制
typedef struct {
    unsigned long location;
    unsigned long length;
} NSRange;

CGRect有点棘手:

代码语言:javascript
复制
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-bit
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17346562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档