iOS从我的viewController访问NSObject类

时间:2013-06-06 04:16:21

标签: ios uiviewcontroller nsobject

我正在尝试从我的viewcontoller访问另一个类但是没有工作:

viewcontroller.h

#import <UIKit/UIKit.h>
@class firstClass; //nsobject class


@interface ViewController : UIViewController
{
    firstClass *firstclass;

}

@property (retain,nonatomic) LEMZfirstClass *firstclass;

---
firstClass.h:

#import "LEMZViewController.h"


@interface firstClass : NSObject
{
    ViewController *viewController;
}

@property (retain,nonatomic) ViewController *viewController;


-(void)doSomenthing;


firstClass.m:

@synthesize viewController;


-(void)doSomenthing
{
    viewController.firstclass=self;
    viewController.outPutLabel.text=@"This is my Label";
}



viewcontroller.m:

@synthesize firstclass;

- (void)viewDidLoad
{
    [super viewDidLoad];
    [firstclass doSomenthing];

}

它编译时没有错误,但标签永远不会更新,因此第一个类永远不会调用它。我做错了什么?我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我注意到的一些事情:

  1. 通常,您可以让ViewController类处理更新自己的UI元素,而不是另一个类。
  2. 你的outPutLabel变量在哪里?它是由代码还是在InterfaceBuilder中连接的IBOutlet创建的?
  3. 在您可以在firstclass上调用某些内容之前,您必须创建它。像这样:

    firstclass = [[firstClass alloc] init]; [firstclass doSomenthing];

  4. viewController.firstclass=self;行将是多余的。

答案 1 :(得分:0)

你的firstClass.h

#import <Foundation/Foundation.h>

@interface firstClass : NSObject
+(NSString *)doSomenthing; //Instance Class
@end

firstClass.m

 #import "firstClass.h"

@implementation firstClass
+(NSString *)doSomenthing
{

    return @"This is my Label";
}
@end

ViewController.h

  #import <UIKit/UIKit.h>
#import "firstClass.h"

@interface ViewController : UIViewController

@end

ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];



    [firstClass doSomenthing];

    outPutLabel.text=[firstClass doSomenthing];;

    // Do any additional setup after loading the view, typically from a nib.
}

注意:这里我使用的是实例类。在您使用此代码之前,您必须学习Instance类。