zl程序教程

您现在的位置是:首页 >  后端

当前栏目

替换NSString类中的stringWithFormat:方法

方法 替换 类中 NSString
2023-09-14 08:57:17 时间

替换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才能够正常使用:)


不过,我们在编写源代码的时候,如果使用 Sting str = aaaa 的形式定义一个字符串,那么双引号里面的ASCII字符最多只能有 65534 个。
C++模板参数替换的理解 还是邓俊辉老师数据结构中List那一章的例子。List的遍历问题。 main.cpp里调用PRINT ( La ); // La是一个自定义的List对象 PRINT这个宏的定义就在main.cpp里#define PRINT(x) { print(x); crc(x); checkOrder(x); } print的声明在UniPrint/print.