gpt4 book ai didi

objective-c - 执行 NSLog 后,值将传递到下一个屏幕

转载 作者:行者123 更新时间:2023-11-28 22:44:02 24 4
gpt4 key购买 nike

我是 Objective C 的新手。我正在做的是在 prepeareSegue 中为目标 View Controller 设置一些值。奇怪的是,如果我在函数中注释掉 NSLog,则不会为目标 Controller 的属性分配值。

我的代码是:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if ([segue.identifier isEqualToString:@"ShowItemOnMap"] ) {
LocateItemViewController *lic = [segue destinationViewController];
NSIndexPath *index = [self.tableView indexPathForSelectedRow];

// self.itemsToBuy is a array of NSDictionary
NSDictionary *selectedItem = [self.itemsToBuy objectAtIndex:[index row]];
Item *theItem = [[Item alloc] init];
NSString *theTitle = [[NSString alloc] initWithString:[selectedItem valueForKey:@"title"]];
theItem.title = theTitle;
lic.item = theItem;

// commenting out NSLog make self.irem in LocateItemViewController nil
// and no value is shown at screen
NSLog(@"%@", lic.item.title);
}

}

Item 是具有属性的自定义类

@property (strong, nonatomic) NSString *title;

LocateItemController 具有以下属性

@property (weak, nonatomic) Item *item;
@property (strong, nonatomic) IBOutlet UILabel *titleLabel;

而 viewDidLoad 只是分配项目

self.titleLabel.text = self.item.title;

最佳答案

如果您需要保留项目,则应将其设为强属性。

关于objective-c - 执行 NSLog 后,值将传递到下一个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706473/

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