0

我正在尝试从我的 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];

}

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

4

2 回答 2

0

我注意到一些事情:

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

    firstclass = [[firstClass alloc] init]; [一流的做某事];

那么这viewController.firstclass=self;条线将是多余的。

于 2013-06-06T04:27:22.317 回答
0

你的 firstClass.h

#import <Foundation/Foundation.h>

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

第一类.m

 #import "firstClass.h"

@implementation firstClass
+(NSString *)doSomenthing
{

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

视图控制器.h

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

@interface ViewController : UIViewController

@end

视图控制器.m

- (void)viewDidLoad
{
    [super viewDidLoad];



    [firstClass doSomenthing];

    outPutLabel.text=[firstClass doSomenthing];;

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

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

于 2013-06-06T04:30:49.553 回答