-1


クラスA には4つのメソッドがあります

-(void)Method1
{

}  

クラスBで

-(void)Method2
{  
     //calling method3 here  
}  
-(void)Method3
{  
  //calling method4 here    
}  
-(NsMutablearray*)Method4
{  
  return array;  
} 

メソッド 1 からメソッド 2 を呼び出しています。それがメソッド 4 に到達し、メソッド 4 が nsmutablearray を返します。メソッド1でその配列を取得するにはどうすればよいですか。

4

5 に答える 5

2

次のようにメソッドを変更します。

-(void)Method1
{ 
   NSMutableArray *tempArray = [classbObj method2]; 
}  

クラスBで

-(NSMutablearray *)Method2
{  
    return [self method3];  
}  
-(NSMutablearray *)Method3
{  
  return [self method4]; 
}  
-(NSMutablearray*)Method4
{  
  return array;  
} 
于 2012-12-27T05:54:25.720 に答える
1

このタスクを達成する方法はいくつかあります。

最初:メソッドの署名を変更し、次のように使用する必要があります:

-(void)method1{ 
  ClassB *classBObj=[ClassB new];
   NSMutableArray *tempArray = [classBObj method2]; 
}  

クラスBで

-(NSMutableArray *)method2{  
    return [self method3];  
}  
-(NSMutableArray *)method3{  
  return [self method4]; 
}  
-(NSMutableArray *)method4{  
  ...
  return array;  
}

2番目 : method1 の method4 と同じ配列を変更せずに必要な場合は、通知を投稿し、ClassA で観察します。

3 番目: これにはデリゲートを使用できます。これは 1 対 1 であるため、通知よりも優れています。

4 番目: メソッド シグネチャを変更したくない場合は、NSArray 型のプロパティを持つ共有クラスを作成し、そのプロパティを使用してメソッドとクラス内で配列を渡します。

于 2012-12-27T07:04:09.493 に答える
1

このような呼び出し方法2があります。method4Ary では、値が返されます

NSMutableArray * method4Ary = [method1_obj Method2]
于 2012-12-27T05:53:10.570 に答える
1

クラス内の逆方向メッセージにはデリゲートを使用します。

詳細については、基本的なデリゲートの例のリンクを参照してください。

于 2012-12-27T05:54:15.190 に答える
1

戻り値の型を からvoidに変更するだけですNsMutablearray

于 2012-12-27T05:54:58.133 に答える