首页 > 代码库 > 替换NSString类中的stringWithFormat:方法

替换NSString类中的stringWithFormat:方法

替换NSString类中的stringWithFormat:方法

先给出源码:

YXUseful.h

////  YXUseful.h//  NSString////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <Foundation/Foundation.h>NSString * String(NSString *format, ...);

YXUseful.m

////  YXUseful.m//  NSString////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "YXUseful.h"NSString * String(NSString *format, ...){    va_list ap;    va_start (ap, format);        NSString *body = [[NSString alloc] initWithFormat:format arguments:ap];        va_end (ap);        return body;}

使用情况:

从上图就能看出,String明显要比下面的方式简单了不少,对吧:)

从实现的角度上来看,是下面的方式(你绝对没有见过可以带多个参数的这种呢)

"..." 这个不定参数列表也许你是第一次见到:)

当然也有弊端:

 

总结:

其实,实现起来并不容易,如果从来没有接触过,是绝对写不出来的,因为,你永远也不会知道需要va_start,va_end才能够正常使用:)