質問: メソッドの引数(中身が格納されている)を、他のメソッドでその中身ごと使うには どうすればいいのでしょうか? 具体的なやりたいこととは、下記メソッドの引数「string」の中身の要素値を テーブルビューのセルにテキストとして一つずつ表示させることです。 そこで「string」についてですが、この引数にxmlファイルの要素値が格納されている ようです(その理由もまだ理解できていないのですが・・・)。 ``` // 要素値の発見時 -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { // 要素名の判別 if ([_nowElem isEqualToString:@"item"]) { // 解析中の要素名(直近)としてのインスタンス変数「_nowElem」の型は //「NSMutableString」です。 NSLog(@"要素値:%@", string); } } ``` どうすれば中身が入った引数を他のメソッドで使用できるのでしょうか?
回答: _nowElemがどんな型なのか、全体の構造がどうなっているかなどわからないので、 ちょっと質問に答えにくいですが、 中身が格納されている、メソッドの引数を、他のメソッドでその中身ごと使うにはという話で良いでしょうか? 1つめの方法として、一時的な変数たとえば、クラスのインスタンス変数にNSString型の変数を持ち、 そして、parser呼び出し後に、その変数に対して処理を行う方法があります。 2つめの方法に、直接関数をparser関数内部で呼び出す事も可能です。 ``` // 要素値の発見時 -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { // 要素名の判別 if ([_nowElem isEqualToString:@"item"]) { // ここらで呼び出す } } ``` が、今回の場合、 tableView:cellForRowAtIndexPath:を使わないとテーブルビューのセルに反映できないので、 前者のやり方が好ましいと思います。