我正在尝试从我的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];
}
它编译时没有错误,但标签永远不会更新,因此第一个类永远不会调用它。我做错了什么?我非常感谢你的帮助。
答案 0 :(得分:0)
我注意到的一些事情:
在您可以在firstclass上调用某些内容之前,您必须创建它。像这样:
firstclass = [[firstClass alloc] init]; [firstclass doSomenthing];
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类。