-1


在 A 类 中有 4 种方法

-(void)Method1
{

}  

B类

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

我从method1调用method2,它上升到method4,method4返回一个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

你有这样的调用方法2。在 method4Ary 中,您将返回值

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

在课堂上使用委托进行反向消息传递。

有关更多参考,请参阅Basic Delegate Example链接。

于 2012-12-27T05:54:15.190 回答
1

只需将返回类型从更改voidNsMutablearray

于 2012-12-27T05:54:58.133 回答
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;  
}

第二:如果您想要与method1中的method4相同的数组而不进行任何修改,请发布通知,并在ClassA中观察它。

第三:您可以为此使用委托,因为这是一对一的,这将比通知更好。

第四:如果您不想更改方法签名,请创建一个具有 NSArray 类型属性的共享类,并使用该属性在方法和类中传递您的数组。

于 2012-12-27T07:04:09.493 回答