0
@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)輸入1 = A,輸入2 = B指定的初始化程序和NSString類別
一個### b
2)INPUT1 = A;
一個
3)輸入2 = B
b
它導致以下警告
「便利初始化缺少一個 '自我' 呼叫到另一個初始值設定」
我不知道以上是effi cient還是會導致任何問題,因爲init
是指定的初始化程序(不知道它是否可能與舊的iOS版本有關)?
如果input1和input2均爲零,則NSString輸出應爲零。
將'initWithInput1:input2:'方法作爲實例方法是沒有意義的。它應該是一個類名爲「combineInput1:andInput2:'的類方法。 – rmaddy
並且不要嘗試覆蓋Objective-C類別中的方法。這是未定義的行爲。 – rmaddy