NSArray的创建(二)类方法

利用一个类方法来创建一个数组, 关于什么是类方法, 同学们麻烦请回去自行查找, 这里不做解释, 下面我们来看看方法和例子.

涉及的方法:

@property (nonatomic, assign) int age: 定义一个int age 的属性.

+ (instancetype)arrayWithArray:(int)age: 声明一个arrayWithArray的类方法.

下面我们来看看例子:

先创建一个新的文件, 我这里命名为LeiNSArray.h文件

#import <Foundation/Foundation.h>

@interface LeiNSArray : NSObject
@property (nonatomic, assign) int age;

+ (instancetype)arrayWithArray:(int)age;

@end

方法的实现:

方法的实现很简单, 首先创建一个空的数组, 然后把属性也在该方法实现, 再返回给array.

#import "LeiNSArray.h"

@implementation LeiNSArray
+ (instancetype)arrayWithArray:(int)age;
{   LeiNSArray *array = [[LeiNSArray alloc]init];
    array.age = age;
    return array;
}
@end

main.m文件

#import <Foundation/Foundation.h>
#import "LeiNSArray.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        LeiNSArray *lei = [LeiNSArray arrayWithArray:10];
        LeiNSArray *lei2 = [LeiNSArray arrayWithArray:20];
        LeiNSArray *lei3 = [LeiNSArray arrayWithArray:30];
        NSArray *arr = @[lei, lei2, lei3];
        NSLog(@"lei = %d\nlei2 = %d\nlei3 = %d", lei.age, lei2.age, lei3.age);
        NSLog(@"%@", arr);
    }
    return 0;
}

输出的结果:

2014-10-15 11:50:36.322 NSArrayDemo2[10765:303] lei = 10
lei2 = 20
lei3 = 30
2014-10-15 11:50:36.324 NSArrayDemo2[10765:303] (
    "<LeiNSArray: 0x100201b10>",
    "<LeiNSArray: 0x100202f70>",
    "<LeiNSArray: 0x100202f80>"
)
Program ended with exit code: 0
时间: 2024-08-01 16:47:27

NSArray的创建(二)类方法的相关文章

动态创建二维vector数组+指针与引用的区别

二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二维vector方法一:vector<vector <int> > ivec;ivec.resize(m);for(int i=0;i<m;i++) ivec[i].resize(n); 方法二:vector<vector <int> > ivec;ivec

iOS原生CIFilter创建二维码

iOS原生CIFilter创建二维码 2016-05-31 未来C 关于二维码生成,网上也是有很多,很早以前的第三方库大多数都是通过C++写,也是有的如zxing,也是挺好用,这里介绍的是通过CIFilter创建二维码.   创建二维码非常简单,只要传入简单的字符串就好了 - (CIImage *)createQRForString:(NSString *)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8Stri

C语言 动态创建二维数组

/*C语言 如何动态创建二维数组 转化为一维数组申请数组,创建和释放都比较简单 */ #include <stdlib.h> #include <stdio.h> #include <malloc.h> #define RANK 10 #define COLUMN 7 int main() { int i,j; int (*p)[COLUMN]; //动态生成二维数组,指定列数为COLUMN,如果想改,自己该里面 //的参数,如果想定义n行2列就为: p=(int (*

动态创建二维数组

vector创建二维数组 初始化二维数组 vector<vector <int> > ivec(n ,vector<int>(m)); //n*m的二维vector vector<vector <int> > ivec(n , vector<int>(m, 0)); //n*m的二维vector,所有元素为0 动态创建m*n的二维 方法一: vector<vector <int> > ivec; ivec.re

ios创建二维码

#import "LCTwoCodeImage.h" @implementation LCTwoCodeImage +(UIImage *) GotoCreatMyTwoCode :(NSString *) string { //通过传入的字符串来创建二维码初始图层渲染 CIImage * firstImage = [self creatCIImageFromString:string]; //通过 CIImage 来生成二维码 UIImage * qrCode = [self cre

【C语言】动态创建二维数组

//动态创建二维数组 #include <stdio.h> #include <stdlib.h> #include <malloc.h> int main() { int i,j; int n,m; //以n行5列为例 int (*p)[5]; printf("请输入行数:"); scanf("%d",&n); p=(int(*)[5])malloc(5*n*sizeof(int)); for(i=0;i<n;i+

c++ 动态创建二维数组

为了做一个东西需要用到动态创建二维数组,特此记录. #include <iostream> #include "time.h" using namespace std; int main() { srand((unsigned)time(NULL)); int x_num; int y_num; cout<<"please input x_num:"; cin>>x_num; cout<<"please in

&lt;细节&gt;动态创建二维数组

今天在做一个关于数组相似度的题目,需要动态创建二维数组,刚开始想用常规的int a[ ][ ]建立,但很快就发现行不通,这种常规数组必须在编译前指定数组的维数,而这个题目在的维数必须在运行中计算得出,于是想到采用new来建立动态二维数组,这个方法行得通,但是很麻烦,也不太利于理解,后面决定采用vector< vector< int > >方法来创建,简单了不少,下面对两种方法都进行一下总结. 1.使用vector创建二维数组 #include <iostream> #i

模板:使用new delete 创建二维数组

1 int **arr_matrix = new int*[n]; 2 for(i = 0; i < n; ++i) arr_matrix[i] = new int[n]; 3 //内容 4 for(i = 0; i < n; ++i) delete [] arr_matrix[i]; 5 delete [] arr_matrix; 模板:使用new delete 创建二维数组