0

我是编程新手。任何帮助都将不胜感激。

它在 AddViewController 中。

NSLog(@"Am Currently at %@",locatedAt);

DetailsOfPeopleViewController *details=[DetailsOfPeopleViewController alloc];
   details.testAddressStr=[NSString stringWithFormat:@"%@",locatedAt];

details.testAddressStr在这里显示值,但它没有将此值传递给 DetailsViewController。

的值locatedAt显示在 AddViewController 中。当我尝试在 DetailsViewController 类的 UILabel 中显示此值时,它不会在标签中显示该值。

在 DetailsViewController.h 中:

NSString *testAddressStr;

@property(nonatomic,strong) NSString *testAddressStr;
@property(nonatomic,retain)IBOutlet UILabel *addressLabel;

在 DetailsViewController.m 中:

 [addressLabel setText:testAddressStr];

我也在尝试这种方式:

addressLabel.text=[NSString stringWithFormat:@"%@",testAddressStr];

我并没有真正明白我犯错的地方......

4

5 回答 5

1

您可以使用NSUserDefault发送数据

设定值

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSString stringWithFormat:@"%@",txtView.text]; forKey:@"testPersonNotesStr"];
[defaults synchronize];

获取值

testPersonNotesStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"testPersonNotesStr"];
NSLog(@"PERSON NOTE is........ %@",testPersonNotesStr);  

:)

于 2012-11-29T06:10:06.297 回答
0

尝试更换

 [addressLabel setText:testAddressStr];

与以下

 [addressLabel setText:self.testAddressStr];
于 2012-11-22T12:19:25.990 回答
0

问题是由于您分配了一个自动释放的变量。它在您将其显示在 detailView 上之前已发布。所以你需要保留它。或者您需要分配testAddressStr.

只需替换这一行:

details.testAddressStr=[NSString stringWithFormat:@"%@",locatedAt];

和:

details.testAddressStr = [[NSString stringWithFormat:@"%@",locatedAt] retain];

或者

details.testAddressStr = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@",locatedAt]];
于 2012-11-22T10:02:38.257 回答
0

保留你的字符串locatedAt,你已经初始化了它。像这样

[locatedAt retain];

享受编程

于 2012-11-22T10:04:54.107 回答
0

在 Objective-C 中没有“对象的范围”这样的东西。范围规则与对象的生命周期无关——保留计数就是一切。

您通常需要声明实例变量的所有权。请参阅 Objective-C 内存管理规则。使用保留属性,您的属性设置者声称拥有新价值的所有权并放弃旧价值的所有权。使用 assign 属性,周围的代码必须这样做,这在职责和关注点分离方面同样混乱。使用 assign 属性的原因是您无法保留该值(例如 BOOL 或 NSRect 等非对象类型),或者保留它会导致不必要的副作用。

顺便说一句,在 NSString 的情况下,正确的属性类型通常是副本。这样,如果有人传入 NSMutableString(这是有效的——它是一种 NSString),它就不会从你下面改变。

于 2012-11-22T10:23:23.147 回答