我正在关注斯坦福大学开放大学的iPhone dev courses,我在assignment3被封锁了两天,也许有人可以帮助我吗?
任务是:
问题是:如何让我的视图类访问控制器中定义的多边形对象?
这是我的实现,如果它可以帮助:
CustomView.h:
#import "PolygonShape.h"
@interface CustomView : UIView {
IBOutlet PolygonShape *polygon;
}
- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;
@end
或者Controller.h:
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "PolygonShape.h"
#import "PolygonView.h"
@interface Controller : NSObject {
IBOutlet UIButton *decreaseButton;
IBOutlet UIButton *increaseButton;
IBOutlet UILabel *numberOfSidesLabel;
IBOutlet PolygonShape *polygon;
IBOutlet PolygonView *polygonView;
}
- (IBAction)decrease;
- (IBAction)increase;
- (void)awakeFromNib;
- (void)updateInterface;
@end
答案 0 :(得分:2)
在你搞清楚之后,谈论一些客观的基础知识可能没有什么坏处:
答案 1 :(得分:1)
找到我自己的答案,我在CustomView中错过了一个setPolygon方法来链接两个...愚蠢...
CustomView.h 中的:
#import "PolygonShape.h"
@interface CustomView : UIView {
IBOutlet PolygonShape *polygon;
}
@property (readwrite, assign) PolygonShape *polygon;
- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;
@end
CustomView.m中的:
@implementation CustomView
@synthesize polygon;
...
@end
Controller.m 中的:
- (void)awakeFromNib {
// configure your polygon here
polygon = [[PolygonShape alloc] initWithNumberOfSides:numberOfSidesLabel.text.integerValue minimumNumberOfSides:3 maximumNumberOfSides:12];
[polygonView setPolygon:polygon];
NSLog (@"My polygon: %@", [polygon description]);
}
答案 2 :(得分:0)
昨晚我刚刚完成了第3次任命。我在Interface Builder中解决了这个问题。首先,我在PolygonShape的“PolygonView”UIView子类上创建了一个插座,然后将其连接到Polygon模型的实例。根据我在谷歌集团和其他各种网站上所读到的内容,我认为没有一种正确的方法可以将这个UIView连接到模型和控制器。但它确实有效,我认为View了解模型并没有错。
答案 3 :(得分:-1)
那你为什么不把它们宣布为班级的属性?