Objective-C 声明一个C语言类型的数组和访问方式@property
2012-12-17 11:11
363 查看
最近在做程序中需要在Objective-C类中声明一个C语言方式的一维数组:
声明属性如果是
会提示错误:Property can not have array or function type BOLL[4]
=======================================================================
正确做法:不声明property属性,也就是不用系统的set个get方法,自己手动添加set和get方法
在CArrayTest.m中的实现
测试代码:
值得注意的是:
Objective-C中返回类型不能是C语言的数组,当然C语言中数组名其实就是一个对应类型指针,指向数组的首地址,
所以我们是用的BOOL类型的数组,但在set和get方法中的参数和返回值都必须是BOOL*(指针,指向数组的首地址)
@interface CArrayTest : NSObject { @private BOOL testArray[4]; } @end
声明属性如果是
@property(nonatomic,assign)BOOL testArray[4];
会提示错误:Property can not have array or function type BOLL[4]
=======================================================================
正确做法:不声明property属性,也就是不用系统的set个get方法,自己手动添加set和get方法
#import <Foundation/Foundation.h> @interface CArrayTest : NSObject { @private BOOL testArray[4]; } - (void)setTestArray:(BOOL*)aTestArray; - (BOOL *)testArray; @end
在CArrayTest.m中的实现
#import "CArrayTest.h" @implementation CArrayTest - (void)setTestArray:(BOOL*)aTestArray { if(aTestArray != NULL) { for(int i = 0; i < 4; ++i) { testArray[i] = aTestArray[i]; } } } - (BOOL *)testArray { return testArray; } @end
测试代码:
//测试代码 CArrayTest *test = [[CArrayTest alloc]init]; BOOL tmp[4] = {YES,NO,YES,YES}; test.testArray = tmp; //或者是 [test setTestArray:tmp]; //输出 for(int i = 0; i < 4; ++i) { if(YES == test.testArray[i]) //或者是 [test testArray][i]; NSLog(@"YES "); else NSLog(@"NO "); }
值得注意的是:
Objective-C中返回类型不能是C语言的数组,当然C语言中数组名其实就是一个对应类型指针,指向数组的首地址,
所以我们是用的BOOL类型的数组,但在set和get方法中的参数和返回值都必须是BOOL*(指针,指向数组的首地址)
相关文章推荐
- 在objective-C类中声明一个数组型成员变量的property
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 在objective-C类中声明一个数组型成员变量的property
- 关于Java变量、数组、对象的声明、初始化与访问方式-----《疯狂Java突破程序员基本功的16课》读书笔记----第一章
- JavaScript中通过数组索引方式访问和属性名方式访问对象属性的一个小小误区
- objective-c 语言 数组遍历的4种方式
- 才疏学浅,见识到一个没见过的数组转换类型方式(byte[] -> sbyte[]),特此拜祭一下。
- 一个奇怪的数组访问方式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- 对个帖子的总结:严重声明:C语言中不存在数组的类型!它仅仅是一个概念!
- 在objective-C类中声明一个数组型成员变量的property
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 打印不同的数(编写一个程序,使用指针访问数组方式,读入十个数,输出其中不同的数,即一个数如果出现多次,只打印一次)