NSString *str1 = @"字符串1"; NSString *str2 = @"字符串2"; //在同样条件下,Objective的字符串拼接 往往只有用 系统方法/格式化 //way 1 格式化 NSString *fullStr = [NSString stringWithFormat:@"%@%@",str1,str2]; //way 2 使用方法追加 NSString *fullStr = [str1 stringByAppendingString:str2];
但有没有发现,无论是用哪种方法拼接,都是一串长长的代码,远远不及swift(不只是swift,还有其他语言也还是)的灵活性
//这是swift的
let str1 = "aaa" let str2 = "bbb" let fullStr = str1 + str2
有没有办法可以把Objective-C的字符串拼接更加简洁呢?
用链式语法是可以的
首先新建一个category,我们要给NSString加入一个get方法
链式语法就是用block来传入参数并执行相关操作,具体原理就不说了
在category中的interface加入一个property
@property (nonatomic,readonly) NSString *(^add)(NSString* str);
这里我们只需要做readonly(没有set方法)
实现方法
- (NSString *(^)(NSString *))add{ return ^(NSString *str){ return [self stringByAppendingString:str]; }; }
那么我拼接只需要
NSString *str1 = @"字符串1"; NSString *str2 = @"字符串2"; NSString *fullStr = str1.add(str2);
即可