gpt4 book ai didi

ios - NSMutableArray Setter 和 Getter 方法

转载 作者:行者123 更新时间:2023-12-01 18:59:12 26 4
gpt4 key购买 nike

我正在尝试制作美食广场申请。我在 AppDelegate.h 中有 3 个 MutableArray

//这是数组的声明以及 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.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);
}

Setter 方法可以正常工作。我在这个 setter 方法中从 FoodController.h 设置我的值,它给了我完美的日志,其中包含方法中的所有值。

FoodController.h
AppDelegate *AppAdd;


AppAdd = [[AppDelegate alloc]init];

[AppAdd setNameArray:NameSegue];
[AppAdd setKGArray:KGQtySegue];
[AppAdd setQtyArray:QtySegue];

上面的代码在 中调用prepareForSegue 方法。更改我的应用程序 View 后,我试图从 OrderDetails.m 中的 Getter 方法获取此数据,但它给出 null 或没有值。我只是不明白为什么这种方法不能正常工作。这是 OrderDetails.m 文件的代码。

订单详情.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];

最佳答案

您不应该创建 App 委托(delegate)的对象。您应该通过以下方式获得它。

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

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

关于ios - NSMutableArray Setter 和 Getter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com