Ios NSMutableArray Setter和Getter方法

Ios NSMutableArray Setter和Getter方法,ios,iphone,objective-c,Ios,Iphone,Objective C,我正在尝试制作一个FoodCourt应用程序。我在AppDelegate.h中有3个可变数组 //这是数组的声明、Getter和Setter方法。 AppDelegate.h @property(strong,nonatomic)NSMutableArray* NameArray; @property(strong,nonatomic)NSMutableArray* QtyArray; @property(strong,nonatomic)NSMutableArray* KGArray; -

我正在尝试制作一个FoodCourt应用程序。我在AppDelegate.h中有3个可变数组

//这是数组的声明、Getter和Setter方法。

AppDelegate.h

@property(strong,nonatomic)NSMutableArray* NameArray;
@property(strong,nonatomic)NSMutableArray* QtyArray;
@property(strong,nonatomic)NSMutableArray* KGArray;


-(NSMutableArray*)GetNameNSO;
-(NSMutableArray*)GetQtyNSO;
-(NSMutableArray*)GetKGNSO;
-(void)setNameArray:(NSMutableArray*)NameArray;
-(void)setQtyArray:(NSMutableArray*)QtyArray;
-(void)setKGArray:(NSMutableArray*)KGArray;
AppDelegate *AppAdd;


AppAdd = [[AppDelegate alloc]init];

[AppAdd setNameArray:NameSegue];
[AppAdd setKGArray:KGQtySegue];
[AppAdd setQtyArray:QtySegue];
我已经在AppDelegate.m中实现了Getter和Setter方法

Appdelegate.m

@synthesize NameArray =_NameArray;
@synthesize KGArray =_KGArray;
@synthesize QtyArray=_QtyArray;


-(NSMutableArray*)GetNameNSO
{
    if(_NameArray == nil)
    {
        _NameArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetName FROM HELPER",_NameArray);
        return _NameArray;
    }
    else
    {
        return _NameArray;
    }


}
-(NSMutableArray*)GetQtyNSO
{
    if(_QtyArray == nil)
    {
        _QtyArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetQTY FROM HELPER",_QtyArray);
        return _QtyArray;
    }
    else
    {
        return _QtyArray;
    }
}
-(NSMutableArray*)GetKGNSO
{
   if(_KGArray == nil)
   {
        _KGArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetKG FROM HELPER",_KGArray);
        return _KGArray;
    }
    else
    {
        return _KGArray;
    }
}
-(void)setQtyArray:(NSMutableArray *)QtyArray{

    _QtyArray=QtyArray;
    NSLog(@"%@ SetQty FROM HELPER",_QtyArray);
}
-(void)setNameArray:(NSMutableArray *)NameArray
{
    _NameArray =NameArray;
    NSLog(@"%@ SetName FROM HELPER",_NameArray);
}
-(void)setKGArray:(NSMutableArray *)KGArray
{
    _KGArray =KGArray;
    NSLog(@"%@ SetKG FROM HELPER",_KGArray);
}
AppDelegate *sc;

sc=[[AppDelegate alloc]init];

[DataName addObjectsFromArray:sc.GetNameNSO];
[DataQty addObjectsFromArray:sc.GetQtyNSO];
[DataQty addObjectsFromArray:sc.GetKGNSO];
Setter方法可以正常工作。我在这个setter方法中从FoodController.h设置我的值,它为我提供了方法中所有值的完美日志

FoodController.h

@property(strong,nonatomic)NSMutableArray* NameArray;
@property(strong,nonatomic)NSMutableArray* QtyArray;
@property(strong,nonatomic)NSMutableArray* KGArray;


-(NSMutableArray*)GetNameNSO;
-(NSMutableArray*)GetQtyNSO;
-(NSMutableArray*)GetKGNSO;
-(void)setNameArray:(NSMutableArray*)NameArray;
-(void)setQtyArray:(NSMutableArray*)QtyArray;
-(void)setKGArray:(NSMutableArray*)KGArray;
AppDelegate *AppAdd;


AppAdd = [[AppDelegate alloc]init];

[AppAdd setNameArray:NameSegue];
[AppAdd setKGArray:KGQtySegue];
[AppAdd setQtyArray:QtySegue];
上述代码在prepareforsgue方法中调用。更改应用程序视图后,我试图从OrderDetails.m中的Getter方法获取此数据,但它给出null或无值。我只是不明白为什么这种方法不能正常工作。下面是OrderDetails.m文件的代码

OrderDetails.m

@synthesize NameArray =_NameArray;
@synthesize KGArray =_KGArray;
@synthesize QtyArray=_QtyArray;


-(NSMutableArray*)GetNameNSO
{
    if(_NameArray == nil)
    {
        _NameArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetName FROM HELPER",_NameArray);
        return _NameArray;
    }
    else
    {
        return _NameArray;
    }


}
-(NSMutableArray*)GetQtyNSO
{
    if(_QtyArray == nil)
    {
        _QtyArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetQTY FROM HELPER",_QtyArray);
        return _QtyArray;
    }
    else
    {
        return _QtyArray;
    }
}
-(NSMutableArray*)GetKGNSO
{
   if(_KGArray == nil)
   {
        _KGArray = [[NSMutableArray alloc]init];
        NSLog(@"%@ GetKG FROM HELPER",_KGArray);
        return _KGArray;
    }
    else
    {
        return _KGArray;
    }
}
-(void)setQtyArray:(NSMutableArray *)QtyArray{

    _QtyArray=QtyArray;
    NSLog(@"%@ SetQty FROM HELPER",_QtyArray);
}
-(void)setNameArray:(NSMutableArray *)NameArray
{
    _NameArray =NameArray;
    NSLog(@"%@ SetName FROM HELPER",_NameArray);
}
-(void)setKGArray:(NSMutableArray *)KGArray
{
    _KGArray =KGArray;
    NSLog(@"%@ SetKG FROM HELPER",_KGArray);
}
AppDelegate *sc;

sc=[[AppDelegate alloc]init];

[DataName addObjectsFromArray:sc.GetNameNSO];
[DataQty addObjectsFromArray:sc.GetQtyNSO];
[DataQty addObjectsFromArray:sc.GetKGNSO];
我只是不明白为什么这个代码不起作用,请帮助我!多谢各位

获取数组的新代码:

AppDelegate *sc = (AppDelegate *)[UIApplication sharedApplication].delegate;
sc=[[AppDelegate alloc]init];

[DataName addObjectsFromArray:sc.GetNameNSO];
[DataQty addObjectsFromArray:sc.GetQtyNSO];
[DataQty addObjectsFromArray:sc.GetKGNSO];

您不应创建应用程序委派的对象。你应该通过下面的方式得到它

AppDelegate *sc = (AppDelegate *)[UIApplication sharedApplication].delegate;
[DataName addObjectsFromArray:sc.GetNameNSO];
[DataQty addObjectsFromArray:sc.GetQtyNSO];
[DataQty addObjectsFromArray:sc.GetKGNSO];

现在,sc将具有所需的值。不要忘记将Appdelegate.h文件导入orderdetails.m文件。

我尝试了您的方法。我仍然没有得到任何数据。@RajanPalaniya请用您正在尝试的新代码更新您的问题,有人能详细说明一下吗?我只是不明白这是怎么回事。我不熟悉iOS编程。请参阅需要编写的代码。不要分配appdelegate。