【iOS开发】结构体如何存入数组中
来源:互联网 发布:python入门经典书籍 编辑:程序博客网 时间:2024/05/29 03:55
1、常见结构体的储存
比较常见的结构体:CGPoint ,CGSize,CGRect。。。。。。我们如何存放到数组中呢?因为是结构体不是对象,不能添加到数组中,解决方法:把这些常见的结构装换成对象,让后放进去,取出来在装换成结构体使用。我们想到了NSValue使用方法如下:
CGPoint point = CGPointMake(0, 0); NSMutableArray *array = [[NSMutableArray alloc]initWithCapacity:0]; NSValue *value = [NSValue valueWithCGPoint:point]; [array addObject:value];
取出数组之后的对象的使用:
NSValue *tmpValue = array[0]; CGPoint tmpPoint = [tmpValue CGPointValue];
下面是一些常见的结构体使用方法是一样的
@interface NSValue (NSValueUIGeometryExtensions)+ (NSValue *)valueWithCGPoint:(CGPoint)point;+ (NSValue *)valueWithCGVector:(CGVector)vector;+ (NSValue *)valueWithCGSize:(CGSize)size;+ (NSValue *)valueWithCGRect:(CGRect)rect;+ (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform;+ (NSValue *)valueWithUIEdgeInsets:(UIEdgeInsets)insets;+ (NSValue *)valueWithUIOffset:(UIOffset)insets NS_AVAILABLE_IOS(5_0);- (CGPoint)CGPointValue;- (CGVector)CGVectorValue;- (CGSize)CGSizeValue;- (CGRect)CGRectValue;- (CGAffineTransform)CGAffineTransformValue;- (UIEdgeInsets)UIEdgeInsetsValue;- (UIOffset)UIOffsetValue NS_AVAILABLE_IOS(5_0);@end
2、自定义结构体的存储
同样是先转换NSValue对象再加入数组中,代码如下:
// 自定义的结构体 struct Test { int ID; CGFloat height; }; typedef struct Test Test; // 封装数据 Test tmpTest; tmpTest.height = 80.0; tmpTest.ID = 100; NSLog(@"id==%d,height==%f",tmpTest.ID,tmpTest.height); NSValue *customValue = [NSValue valueWithBytes:&tmpTest objCType:@encode(struct Test)];// 取出数据 Test tmpTest1; [customValue getValue:&tmpTest1]; NSLog(@"id==%d,height==%f",tmpTest1.ID,tmpTest1.height);
关于存到数据组和上面的一样就不在写了
0 0
- 【iOS开发】结构体如何存入数组中
- iOS中结构体数组
- IOS开发---C语言-⑯结构体数组
- 学历iOS开发纪录(结构体和数组指针)
- 如何把数组做为一个字段存入存入数据库
- 如何把数组做为一个字段存入存入数据库
- java中如何在键盘中输入一串数字然后存入数组中
- iOS 多种数据类型存入NSMutableArray数组
- 结构体数组中
- 关于如何在listview 中绑定结构体数组
- 如何把一个CGPoint存入数组里
- [VB.NET]请问如何将从数据库提出来的一列数据存入一个数组中?
- c# 如何将字符串中用","分开的数字分别存入数组中
- 【IOS】如何封装结构体对象到NSMutableArray中
- PHP将数组存入到数据库中
- 把数组存入到cookie中
- PHP将数组存入到数据库中
- iOS开发中结构体的另一种“初始化方法”
- 递归的一个例子
- Android中ExpandableListView的使用 (二)
- nginx+tomcat+memcached实现sessions共享
- windows上安装redis和phpredis扩展
- Xcode插件优缺点对比(推荐20款插件)
- 【iOS开发】结构体如何存入数组中
- Ext 基础知识之事件机制
- DrawCli代码中双缓冲,裁剪区技术以及坐标变换等技术分析
- 【SPOJ-MATCHING】Fast Maximum Matching【二分图匹配】
- 模块化--RequireJS
- android中对Canvas.drawCircle()方法的理解
- 媒体类型@media
- Dede列表页调用TAG标签的方法
- hrbust 哈理工oj 1993数硬币【dp】【背包】