首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向集合添加不透明类型

如何向集合添加不透明类型
EN

Stack Overflow用户
提问于 2009-02-02 18:00:12
回答 2查看 324关注 0票数 0

如何将不透明类型添加到cocoa中的集合?

我收到了一个编译器警告(显然,因为不透明类型不是对象):

代码语言:javascript
复制
CGColorSpaceRef colorSpace;
NSArray *myArray = [NSArray arrayWithObject:colorSpace];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-06 06:32:13

可以直接将CoreFoundation数据类型(CFTypes)添加到集合中。(它们需要强制转换为(id)以抑制警告。)这被称为“免费桥接”。

代码语言:javascript
复制
CGColorSpaceRef colorSpace;
NSArray *myArray = [NSArray arrayWithObject:(id)colorSpace];
票数 0
EN

Stack Overflow用户

发布于 2009-02-02 18:28:47

可以使用NSValue类将不透明类型包装在对象中。来自here

NSValue对象是单个C或Objective-C数据项的简单容器。它可以保存任何标量类型,如int、float和char,以及指针、结构和对象ids。此类的用途是允许将此类数据类型的项添加到集合中,例如NSArray和NSSet的实例,这些集合要求它们的元素是对象。NSValue对象始终是不可变的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/504174

复制
相关文章

相似问题

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