在这个地方我们将通过一个例子来演示怎样来创建一个对象,创建数组,怎样将数组中的对象的属性都输出来。
首先为了完成这样的一个目标我们需要做的是创建一个对象:
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property(nonatomic,copy) NSString *pname;
@property(nonatomic,assign) int age;
-(instancetype)initWithPname:(NSString *)pname andage:(int)age;
+(instancetype)personWithinit:(NSString *)pname andage:(int)age;
@end
在这个地方我们创建了一个对象,并且声明了两个构造方法。
类的实现文件:
import "Person.h"
@implementation Person
-(instancetype)initWithPname:(NSString*)pname andage:(int)age
{
if([super init])
{
_pname=pname;//当我们在变量的前面加上@property这个访问权的时候,系统会在我们定义的变量的前面加上
//下划线_所以我们在使用变量的时候应在变量的下面加上一个下划线。
_age=age;
}
return self;
}
+(instancetype)personWithinit:(NSString*)pname andage:(int)age
{
return [[self alloc] initWithPname:pname andage:age];
}
//在这个地方我们重载的方法description这个方法,这个方法在我们输出对象的时候会主动的调用。
-(NSString *)description
{
return [NSString stringWithFormat:@"name=%@,age=%d",_pname,_age];
}
@end
//最后是我们的主函数,主函数的要实现的功能有哪些,第一是我们要创建对象,并且我们要将对象放到数组中,最后还要遍历数组。
#import "Person.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSMutableArray *arr=[NSMutableArray arrayWithCapacity:5];
//首先是我们用NSMutableArray创建一个数组对象,并且给这个数组开辟5个内存空间。
Person *p1=[Person personWithinit:@"xiaoming" andage:5];//我们创建对象其实在创建对象的时候我们这个地方也清晰的可以看到的是5为什么我们要定义类方法。其中类方法中也使用了对象的构造函数这个方法。
Person *p2=[Person personWithinit:@"daming" andage:6];
Person *p3=[Person personWithinit:@"zhongming" andage:7];
Person *p4=[Person personWithinit:@"wangming" andage:8];
//将我们创建的对象放到数组中用到的函数是addObject这个函数。
[arr addObject:p1];
[arr addObject:p2];
[arr addObject:p3];
[arr addObject:p4];
for(Person *p5 in arr)
{
NSLog(@"%@",p5);//这个地方是遍历对象,其实在输出对象的时候,会主动的调用函数description
}
}
return 0;
}
//到此为止我们也就是实现了对象的创建,储蓄,和遍历。