您的位置:首页 > 其它

OC项目-论坛

2013-06-10 12:20 176 查看
#ifndef _______Header_h
#define _______Header_h

enum _sex{
girl,
boy
};

typedef enum _sex Sex;

typedef enum _level{
littleBird,
flyBird,
oldBird
}Level;

typedef struct _date{
int year;
int month;
int day;
}Date;

#endif

```

```
//
//  User.h
//  天天灌水论坛
//
//  Created by 邱学伟 on 15/7/28.
//  Copyright (c) 2015年 jerehedu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Header.h"

@interface User : NSObject
{
NSString * _name;
NSString *_psw;
Sex _sex;
//unsigned long age;
NSInteger _age; //typedef unsigned long NSUInteger
Date _signDate;
Level _level;
}

//构造器方法
-(void)setName:(NSString*)name;
-(NSString *)name;

-(void)setPsw:(NSString*)psw;
-(NSString *)psw;

-(void)setSex:(Sex)sex;
-(Sex)sex;

-(void)setAge:(NSInteger)age;
-(NSInteger)age;

-(void)setSignDate:(Date)date;
-(Date)date;

-(void)setLevel:(Level)level;
-(Level)level;

//实例方法初始化传值
-(void)setWithName:(NSString *)name andPsw:(NSString *)psw andSex:(Sex)sex andAge:(NSInteger)age andSignDate:(Date)date andLevel:(Level)level;

//类方法初始化传值
+(id)setWithName:(NSString *)name andPsw:(NSString *)psw andSex:(Sex)sex andAge:(NSInteger)age andSignDate:(Date)date andLevel:(Level)level;

//个人信息展示
-(void)showUserInfo;

//将等级的枚举值转化为字符串
-(NSString *)getLevelString:(Level)level;
@end

```

```
//
//  User.m
//  天天灌水论坛
//
//  Created by 邱学伟 on 15/7/28.
//  Copyright (c) 2015年 jerehedu. All rights reserved.
//

#import "User.h"

@implementation User
-(void)setName:(NSString*)name{
_name=name;
}
-(NSString *)name{
return _name;
}

-(void)setPsw:(NSString*)psw{
_psw=psw;
}
-(NSString *)psw{
return _psw;
}

-(void)setSex:(Sex)sex{
_sex=sex;
}
-(Sex)sex{
return _sex;
}

-(void)setAge:(NSInteger)age{
_age=age;
}
-(NSInteger)age{
return _age;
}

-(void)setSignDate:(Date)date{
_signDate=date;
}
-(Date)date{
return _signDate;
}

-(void)setLevel:(Level)level{
_level=level;
}
-(Level)level{
return _level;
}

-(void)setWithName:(NSString *)name andPsw:(NSString *)psw andSex:(Sex)sex andAge:(NSInteger)age andSignDate:(Date)date andLevel:(Level)level{
_name=name;
_psw=psw;
_sex=sex;
_age=age;
_signDate=date;
_level=level;
}

+(instancetype)setWithName:(NSString *)name andPsw:(NSString *)psw andSex:(Sex)sex andAge:(NSInteger)age andSignDate:(Date)date andLevel:(Level)level{
User *user0 = [User new];
[user0 setWithName:name andPsw:psw andSex:sex andAge:age andSignDate:date andLevel:level];
return user0;
}

#pragma mark 个人信息展示
-(void)showUserInfo{
NSLog(@"大家好!我是 %@ ,今年 %li 岁,我是在%i年%i月%i号 注册的,等级为 %@",_name,_age,_signDate.year,_signDate.month,_signDate.day,[self getLevelString:_level]);

}

-(NSString *)getLevelString:(Level)level{
NSString *str;
switch (level) {
case littleBird:
str=@"菜鸟";
break;
case flyBird:
str = @"飞鸟";
break;
case oldBird:
str = @"老鸟";
break;

default:
break;
}
return str;
}
@end

```

```
//
//  main.m
//  天天灌水论坛
//
//  Created by 邱学伟 on 15/7/28.
//  Copyright (c) 2015年 jerehedu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "User.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Date date1={2015,7,28};
User *user1 = [User new];

[user1 setWithName:@"lovke" andPsw:@"0987654" andSex:boy andAge:23 andSignDate:date1 andLevel:littleBird];
[user1 showUserInfo];

User *user2 = [User setWithName:@"lovke2" andPsw:@"1223421" andSex:girl andAge:24 andSignDate:date1 andLevel:oldBird];
[user2 showUserInfo];

}
return 0;
}

```

总结:
练习下构造器函数,枚举变量和结构体变量单独放在一个自定义的头文件中,便于定义和使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: