代码改变世界

IOS中的类方法和实例方法

2018-08-06 16:10  zhaosn  阅读(1378)  评论(0编辑  收藏  举报

声明方法的开头为正号(+)的通知编译器表示为类方法class method,类方法属于类对象而不是类的实例对象,通常用于创建新的实例。我们称这种用来创建新对象的类方法为工厂方法 factory method。

如果某个方法所实现的是很通用的功能,比如创建一个实例对象或访问一些全局类数据,最好声明为类方法。

stringWithFormat:是一个类方法。

例如:  

NSString *str = [NSString stringWithFormat:@"%f", value];

直接以类NSString调用stringWithFormat方法。

alloc 是一个类方法。

下面是一下类方法举例:

+ (UIColor *)redColor;        // 1.0, 0.0, 0.0 RGB 

+ (UIColor *)greenColor;      // 0.0, 1.0, 0.0 RGB 

+ (UIColor *)blueColor;       // 0.0, 0.0, 1.0 RGB

self.textColor = [UIColor whiteColor];

 

+(NSString *)currentLanguage;//声明

 

//实现

+(NSString *)currentLanguage{

    NSUserDefaults *def = [NSUserDefaults standardUserDefaults];

    NSArray* languages = [def objectForKey:@"AppleLanguages"];

    return  [languages objectAtIndex:0];

}

 

//调用

NSString *lan = [NSDate currentLanguage];

 

************************************************************

声明方法的开头为负号(-)的通知编译器表示为实例方法;在指定的对象实例中起作用。

- (NSString *) stringFromMD5;

NSString * password=@"123456";

NSString *strMd5=[password stringFromMD5];  //在指定的对象实例中起作用

 

-(NSString *) stringWithFormat_yyyy_MM_dd;//声明

//实现

-(NSString *) stringWithFormat_yyyy_MM_dd{

    return [self stringWithFormat:@"yyyy-MM-dd"];

}

//调用

NSString * strDate=[[NSDate date] stringWithFormat_yyyy_MM_dd];

 

-(NSString *)chineseStringDate;

 

-(NSString *)chineseStringDate{

    return [self stringWithFormat:@"yyyy年M月d日"];

}

NSString * str = [self chineseStringDate];//2014年12月27日