我正在尝试制作FoodCourt应用程序。我在AppDelegate.h中有3个MutableArrayNSMutableArray Setter和Getter方法
//这是数组的声明和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;
我已经实现getter和setter方法在AppDelegate.m
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);
}
setter方法工作正常原样这应该。我在这个setter方法中设置了来自FoodController.h的值,并给出了方法中所有值的完美日志。
FoodController.h
AppDelegate *AppAdd;
AppAdd = [[AppDelegate alloc]init];
[AppAdd setNameArray:NameSegue];
[AppAdd setKGArray:KGQtySegue];
[AppAdd setQtyArray:QtySegue];
上面的代码被称为prepareForSegue方法。在更改我的应用程序视图后,我试图从OrderDetails.m中的Getter方法获取这些数据,但它给出了null值或没有值。我只是不明白为什么这种方法无法正常工作。这是OrderDetails.m文件的代码。
OrderDetails.m
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];
我试过你的方法。我仍然没有收到任何数据。 –
@RajanPalaniya请使用您正在尝试的新代码更新您的问题 – deanWombourne
[不要滥用App Delegate](http://www.hollance.com/2012/02/dont-abuse-the-app-delegate/ ) – CrimsonChris