针对iPhone的UIKit进行编码。使用自定义方法将控制器上下文与控制器进行通信时的警告
设置,有关细节:
SomeView.h:
#import <UIKit/UIKit.h>
@interface SomeView : UIView {
SomeObject *myObject;
}
@property (assign) SomeObject *myObject;
-(void) doSomething;
@end
SomeView.m:
#import "SomeView.h"
@implementation SomeView
@synthesize myObject;
- (void)doSomething {
NSLog(@"doing something");
}
- (void) drawRect:(CGRect)rect {
// drawing is based on myObject
}
@end
或者Controller.h:
#import <UIKit/UIKit.h>
#import "SomeView.h"
@interface Controller : NSObject {
IBOutlet UIView *someView;
}
@end
Controller.m或者:
#import "Controller.h"
@implementation Controller
-(void)awakeFromNib {
[someView doSomething];
[someView setSomeObject:someObject];
}
@end
我在Interface Builder中实例化控制器对象,而SomeView是我的应用程序主窗口中的一个自定义UIViews类。
现在,问题:
1)当我运行上面,我得到两条线警告:和setSomeObject类似的警告:“警告DoSomething的‘“的UIView可能不响应’”。为什么? (代码实际上似乎工作,但我不喜欢看到警告。)
2)这是正确的做事方式吗?我真正追求的是让SomeView知道someObject,这样当调用SomeView的drawRect时,它可以根据someObject的当前状态改变它的行为。我不需要直接在SomeView中获得对象;我可以将它放在控制器中,但视图仍然需要一些可能在运行时更改的信息。
谢谢,就是这样,我在控制器头部中输入了错误的类型。 – Jaanus 2009-12-16 19:18:50