您好我有两个视图控制器:FirstViewController和SecondViewController
FirstViewController.h
#import <UIKit/UIKit.h>
@interface FirstViewController: {
NSString *prStr;
}
-(IBAction)setString;
@property (nonatomic, retain) NSString *prStr;
@end
FirstViewController.m
#import"FirstViewController.h"
@implementation FirstViewController
@synthesize prStr;
-(IBAction)setString{
prStr = [[NSString alloc]initWithFormat:@"1"];
}
SecondViewController.h
#import <UIKit/UIKit.h>
@class FirstViewController;
@interface SecondViewController: {
FirstViewController *pr;
}
-(IBAction)example;
@property (nonatomic, retain) FirstViewController *pr;
@end
SecondViewController.m
#import"SecondViewController.h"
#import "FirstViewController.h"
@implementation SecondViewController
@synthesize pr;
-(IBAction)example{
NSLog(pr.prStr);
if([pr.prStr isEqualToString:@"1"]==YES){
//Do Something }
}
当我构建并运行app时,在执行IBAction示例时,在调试器控制台上没有出现任何内容!如何从SecondViewController的操作中访问FirstViewController的字符串,以便在调试器控制台上显示它?
答案 0 :(得分:1)
在您的示例中,您实际上从未调用过setString,因此实际上并未设置该值。
除此之外,我认为将一个属性的getter直接用作IBAction是不好的(尽管IBAction相当于无效)
答案 1 :(得分:1)
第一个问题是你没有分配它。 即使你分配了它,你也应该作为一个单独的对象分配。
答案 2 :(得分:0)
U为该对象(pr)分配内存并试用。