我是一名新的Obj C程序员,请耐心等待。我的数据结构如下:
帐单包含收据和数组。收据包含一个数组 receiptItems。 ReceiptItems包含一个名为itemName的字符串。
我将在一个视图控制器中创建的Receipt类型的自定义对象传递给另一个视图控制器。我是通过自定义init方法这样做的。代码如下:
- (id)initWithReceipt:(Receipt *)currentReceipt
{
self = [super initWithNibName:@"SplitCheckViewController" bundle:nil];
if (self) {
ReceiptItem *temp1 = (ReceiptItem *)[currentReceipt.receiptItemsArray objectAtIndex:0];
NSLog(temp1.itemName);
currentBill.originalReceipt = currentReceipt;
ReceiptItem *temp2 = (ReceiptItem *)[self.currentBill.originalReceipt.receiptItemsArray objectAtIndex:0];
NSLog(temp2.itemName);
}
return self;
}
currentReceipt正在传递并包含每个第一个NSLog输出的相应数据。但是,一旦我尝试将此对象分配给此视图控制器(currentBill.originalReceipt)中的属性,我将获得第二个NSLog的空白输出。我确信这是基本的,但我很困惑。
答案 0 :(得分:0)
您是否忘记分配currentBill。尝试在第一个NSLog之后打印currentBill。
答案 1 :(得分:0)
从标题中,您希望将对象从第一个视图控制器传递到第二个视图控制器。有很多方法可以做到这一点。
最常用的是初始化第二个视图控制器时,为第二个视图控制器的属性赋值,然后显示第二个视图控制器
我相信还有其他方法可以做到。