gpt4 book ai didi

iphone - UIViewController 中的继承

转载 作者:行者123 更新时间:2023-11-28 20:35:43 24 4
gpt4 key购买 nike

我正在努力继承 UIViewControllers,但遇到了问题。这是我使用过的 ViewController 列表及其流程。

头文件

MainViewController : UIViewController {

}

CustomerTicketViewController : UIViewController {

}
@property (nonatomic, retain) NSArray *listTickets;

CustomerEditTicketViewController : CustomerTicketViewController {

}

实现文件

@implementation MainViewController

- (void)loadCustomer {
CustomerTicketViewController *customerTicketViewController = [[CustomerTicketViewController alloc] initWithNibName:@"CustomerTicketViewController" bundle:nil];
[customerTicketViewController setListTickets:myTickets];
[self presentModalViewController:customerTicketViewController animated:YES];
[customerTicketViewController release];
}

@end

@implementation CustomerTicketViewController

- (void)editCustomer {
CustomerEditTicketViewController *customerEditTicketViewController = [[CustomerEditTicketViewController alloc] initWithNibName:@"CustomerEditTicketViewController" bundle:nil];
NSLog(@"ParentView.listTickets: %@", listTickets);
[self presentModalViewController:customerEditTicketViewController animated:NO];
[customerEditTicketViewController release];
}

@end

@implementation CustomerEditTicketViewController

- (void)viewDidLoad {
NSLog(@"listTickets: %@", listTickets);
NSLog(@"super.listTickets: %@", super.listTickets);
NSLog(@"self->listTickets: %@", self->listTickets);
NSLog(@"self.listTickets: %@", self.listTickets);
}

@end

子类中的日志打印 null 但根据我的理解,它们应该打印与 ParentView 中相同的值。如果我在某些地方错了,请指导我。

    ParentView.listTickets: (
"<CustomerTicket: 0x4c75d90>",
"<CustomerTicket: 0x4c76310>"
)

listTickets: (null)
super.listTickets: (null)
self->listTickets: (null)
self.listTickets: (null)

最佳答案

您的编辑 View Controller 是一个单独的对象。它从父类(super class)继承的是它有一个名为 listTickets 的数组属性,而不是该属性的。这是面向对象编程中的(?)基本点。

您必须在创建 View Controller 后设置值,就像您在创建第一个 View Controller 时所做的那样:

CustomerEditTicketViewController *customerEditTicketViewController = [[CustomerEditTicketViewController alloc] initWithNibName:@"CustomerEditTicketViewController" bundle:nil];

customerEditTicketViewController.listTickets = self.listTickets;

关于iphone - UIViewController 中的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630369/

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