objective-cでの関数の使い方を勉強しております。
戻り値がある関数の作り方がよくわかりません。
引数に与えられた文字から別の文字を戻り値に出す様な関数を作ってみました。
しかし下記のソースでエラーがでてしまいます。
どこが悪いか指摘して頂けないでしょうか?
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** initialization method -initWithCharactersNoCopy:length:freeWhenDone: cannot be sent to an abstract object of class NSCFString: Create a concrete instance!'
*** Call stack at first throw:
-(NSMutableString*)returnImagePath:(NSMutableString*)string{
NSMutableString *rStr = [NSMutableString string];
if( [string isEqualToString:@"白"] ) [rStr initWithString:@"shiro"];
else if( [string isEqualToString:@"赤"] ) [rStr initWithString:@"aka"];
else [rStr initWithString:@"none"];
return rStr;
}
NSMutableString *col1 = [NSMutableString string];
[col1 setString:@"赤"];
[col1 setString:[self returnImagePath:col1]];
objective-cでの関数の使い方
Re: objective-cでの関数の使い方
allocと同時ならともかく、後から文字列を入れるなら initWithStringではなく setStringを使いましょう。伊藤加奈 さんが書きました: if( [string isEqualToString:@"白"] ) [rStr initWithString:@"shiro"];
else if( [string isEqualToString:@"赤"] ) [rStr initWithString:@"aka"];
else [rStr initWithString:@"none"];
Re: objective-cでの関数の使い方
修正してみた所できました!!
戻り値の使い方は間違えていなかったのですね。
そんなミスだったとは気がつきませんでした。
ありがとうございました。
戻り値の使い方は間違えていなかったのですね。
そんなミスだったとは気がつきませんでした。
ありがとうございました。