gpt4 book ai didi

iphone - NSString 不会在类之间传递

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

我正在努力让它工作,让我解释一下我想做什么,然后我会展示一些代码。好吧,我有一个带有导航 Controller 的 UITableView,当您选择一行时,它会加载一个详细 View 。

我制作了一个字符串,其中包含选择的行,因此我可以知道要在 View 上显示什么。字符串不会在这两个类之间传递,只会出现空值,即使我尝试在同一类中的另一个方法中对字符串进行 NSLog,它仍然会出现空值,它唯一会实际显示其中内容的地方是它的创建方法。

让我给你看一些代码,我正在尝试不同的方法来做到这一点,并且都以 null 出现头等舱.h

@interface features : UITableViewController{

NSMutableArray *featuresTableViewSet;

NSString *selectedFeature;
}

@property (nonatomic, retain) NSMutableArray *featuresTableViewSet;
@property (nonatomic, retain) NSString *selectedFeature;

-(NSString *)get;
@end

头等舱.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath   *)indexPath
{
selectedFeature = [[NSString alloc]init];
selectedFeature = [featuresTableViewSet objectAtIndex:indexPath.row];


// Navigation logic may go here. Create and push another view controller.

features_detail *detailViewController = [[features_detail alloc] initWithNibName:@"features_detail" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];



}

-(NSString *)get{
NSLog(@"%@", selectedFeature);
return selectedFeature;
}

现在这是我试图使用字符串的类

i #import "features.h" 将第一个类导入第二个

这是第二类的.m

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.

features *selected = [[features alloc]init];

self.title = selected.selectedFeature;

NSLog(@"%@", [selected get]);

NSLog(@"%@", selected.selectedFeature);
}

我正在做的两件事中的一件应该行得通吗?

谢谢:)

最佳答案

哦,不,这样不行。您应该在详细 View 类 .h 文件中创建 NSString 属性:

@interface features_detail : <bla-blaController> {

NSString *selectedFeature;

}

@property (nonatomic, retain) NSString *selectedFeature;

创建 detailViewController 实例后,您可以使用从表中获取的值初始化此属性,然后推送 Controller :

features_detail *detailViewController = [[features_detail alloc]     initWithNibName:@"features_detail" bundle:nil];
//pass it like this:
detailViewController.selectedString = selectedFeature;

[self.navigationController pushViewController:detailViewController animated:YES];

// Now don't forget to release the controller you've pushed:
[detailViewController release];

//Oh, and you need to release the string as well:
[selectedFeature release];

这将有助于避免由于未释放对象而导致的内存泄漏。

顺便说一下,这里不需要get 方法。

关于iphone - NSString 不会在类之间传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816488/

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