2

我正在学习斯坦福开放大学的iPhone 开发课程,我在assignment3上被封锁了 2 天,也许有人可以在这里帮助我?

任务是:

  1. 创建将显示您的 PolygonShape 对象的自定义 UIView 子类
  2. 让您的视图类访问 PolygonShape 对象,以便它可以根据需要检索多边形的详细信息

问题是:如何让视图类访问控制器中定义的多边形对象?

如果有帮助,这是我的实现:

自定义视图.h:

#import "PolygonShape.h"

@interface CustomView : UIView {
    IBOutlet PolygonShape *polygon;
}
- (NSArray *)pointsForPolygonInRect:(CGRect)rect numberOfSides:(int)numberOfSides;

@end

控制器.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
4

4 回答 4

2

在你弄明白之后,补上一些objective-c基础知识可能不会有什么坏处:

http://www.cocoacast.com/?q=node/103

于 2008-12-04T04:23:59.783 回答
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]);
} 
于 2008-12-04T04:21:50.880 回答
0

我昨晚刚完成作业3。我在 Interface Builder 中解决了这个连接。首先,我在 PolygonShape 的“PolygonView”UIView 子类上创建了一个插座,然后将其连接到 Polygon 模型的实例。根据我在 Google Group 和其他各种网站上阅读的内容,我认为没有一种正确的方法可以将此 UIView 连接到模型和控制器。但它起作用了,我认为 View 了解模型并没有错。

于 2009-05-11T17:17:36.053 回答
-1

那么为什么不将它们声明为类的属性呢?

于 2008-12-04T16:01:33.607 回答