@implementation NSString (StringCategory)
-(id)init{
self =[super init];
return self;
}
-(id)initWithInput1:(NSString*)input1 input2:(NSString*)input2{
input1 = [input1 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
input2 = [input2 stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if(input1.length>0 && input2.length>0){
self = [NSString stringWithFormat:@"%@###%@",input1,input2];
}else if(input1.length>0){
self = input1;
}else if(input2.length>0){
self = input2;
}
return self;
}
@end
以上代码产生以下输出。 1)input1 = a,input2 = b
一个### B'/ P>
2)input1 = a;
一
3)输入2 = B
B'/ P>
导致以下警告
"便利初始化程序错过了自我'打电话给另一个初始化程序"
我不知道上述内容是否有效或是否会导致任何问题,因为init
是指定的初始化程序(不知道它是否会出现旧iOS版本的问题)?
如果input1和input2都是nil,则NSString输出应为nil。
答案 0 :(得分:0)
如果input1.length == 0
和input2.length == 0
,您未设置self
,则不会调用super init
,但仍会返回self
。在这种情况下,您可能想要设置self = nil
或return nil
。