声明方法的开头为正号(+)的通知编译器表示为类方法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日