从另一个类访问字符串的问题

时间:2010-11-25 16:53:56

标签: iphone objective-c class nsstring

您好我有两个视图控制器: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的字符串,以便在调试器控制台上显示它?

3 个答案:

答案 0 :(得分:1)

在您的示例中,您实际上从未调用过setString,因此实际上并未设置该值。

除此之外,我认为将一个属性的getter直接用作IBAction是不好的(尽管IBAction相当于无效)

答案 1 :(得分:1)

第一个问题是你没有分配它。 即使你分配了它,你也应该作为一个单独的对象分配。

答案 2 :(得分:0)

U为该对象(pr)分配内存并试用。