从ViewController访问时无法从我的数据类方法获得结果

时间:2011-07-07 15:26:35

标签: objective-c xcode viewcontroller

我创建了一个数据类名称Person,其中包含一个整数和一个bool实例变量。 在我的ViewController“initWithNibName”中我初始化

    anObject = [[Person alloc] init];

在View控制器内部定义了一个IBAction。我想在每次点击时切换人员类中的bool值。我可以在每次点击时显示文字,甚至可以附加它。但无法从我的数据类中打印int值或bool值。

Person.h文件

   @interface Person : NSObject {

       int pheight;
       BOOL palive;


   }

   -(Person*) init;
   -(void) setPersonheight: (int) h andAlive: (BOOL) pn;
   -(int) personHeight;
   -(void) display;
   -(BOOL) isPersonAlive;

   @end

Person.m文件

   #import "Person.h"


   @implementation Person

   -(Person*) init{

       self = [super init];

    if (self){

        [self setPersonheight:5 andAlive:YES];
    }       

    return self;
   }

   -(void) setPersonheight: (int) h andAlive: (BOOL) pn{

       pheight = h;
    palive = pn;

   }

   -(int) personHeight{

    return pheight;

   }


   -(void) display{

    if(palive){
        palive = NO; 
    }
    else {
        palive = YES;
    }
   }

   -(BOOL) isPersonAlive{

    return YES;

   }

   @end

* ViewController.h文件

   @interface Demo9ViewController : UIViewController {

    UILabel *outlet;
    Person *anObject;
    //id anObject;

   }

   @property (nonatomic, retain) IBOutlet UILabel *outlet;
   -(IBAction) displayPerson:(id) sender;

   @end

*查看controller.m文件

   -(IBAction) displayPerson:(id) sender{

    [anObject display];
    NSString *myPerson = [NSString stringWithFormat:@"%d",[anObject personHeight]];
    NSString *string = [outlet.text stringByAppendingString:myPerson];
    outlet.text = string;
   }

有人能说出来,我在这里做错了什么?

谢谢,

此致 M Tahir

1 个答案:

答案 0 :(得分:0)

您是否正确地将outlet连接到UILabel?

您的命名存在很多其他问题,而不是使用属性,但首先要确保正确设置了插座和操作。

outlet.text中的内容是什么?