NSString值未保留

时间:2011-08-22 09:01:38

标签: objective-c xcode ios4 nsstring

我正在尝试将字符串中的数据分配给另一个viewcontroller中的另一个字符串,但似乎数据未被保留 - 我在NSLog中得到一个空响应。我想知道为什么,谢谢..

2 个答案:

答案 0 :(得分:1)

尝试稍微更改订单,如下所示,并使用保留而不是复制:

SchoolDetailViewController *schoolController = [[SchoolDetailViewController alloc]initWithNibName:nil bundle:nil];
schoolController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
schoolController.courseDetails = @"passing new content"; 
[self presentModalViewController:schoolController animated:YES];
NSLog(@" %@",schoolController.courseDetails); // 'passing new content' is shown

.h
    NSString *courseDetails;
@property (nonatomic, retain) NSString *courseDetails; 

.m
@synthesize courseDetails; 

- (void)viewDidLoad {

    NSLog(@" text : %@",courseDetails); // returns null ... why? 

    [super viewDidLoad];
}

这应该有用。

答案 1 :(得分:0)

那是因为当您使用或不使用动画呈现视图控制器时会调用viewDidLoad方法。

所以只需翻转这两个陈述

[self presentModalViewController:schoolController animated:YES];
schoolController.courseDetails = @"passing new content"; 
像这样

schoolController.courseDetails = @"passing new content"; 
[self presentModalViewController:schoolController animated:YES];

然后再次检查结果......