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)INPUT1 = A、INPUT2 = B指定された初期化子とNSStringカテゴリ
###のB
2)INPUT1 = A。
3)入力2 = B
bは
それは警告" '自己' を欠落しているコンビニエンス初期化子を別の初期化に呼び出します"以下になり
上記が有効かどうかわかりませんinit
が指定された初期設定者です(古いiOSバージョンで問題が発生する可能性があるかどうかわかりません)。
input1とinput2の両方がnilの場合、NSString出力はnilでなければなりません。
'initWithInput1:input2:'メソッドがインスタンスメソッドであることは意味がありません。 'combineInput1:andInput2:'のような名前のクラスメソッドでなければなりません。 – rmaddy
Objective-Cカテゴリのメソッドをオーバーライドしないでください。これは未定義の動作です。 – rmaddy