Ogni volta che costruisco il seguente codice, ottengo l'errore sopra.errore: lista dei programmatori di specificazione prevista prima ... nell'obiettivo C?
//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 *shape;
IBOutlet PolygonView *shapeView;
}
- (IBAction)decrease;
- (IBAction)increase;
- (void)awakeFromNib;
@end
//Controller.m
#import "Controller.h"
@implementation Controller
@end
Tuttavia, quando sostituisco l'istruzione import e inserisco un riferimento di classe forward, il codice viene compilato.
//Controller.h
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "PolygonShape.h"
@class PolygonView;
@interface Controller : NSObject
{
IBOutlet UIButton *decreaseButton;
IBOutlet UIButton *increaseButton;
IBOutlet UILabel *numberOfSidesLabel;
IBOutlet PolygonShape *shape;
IBOutlet PolygonView *shapeView;
}
- (IBAction)decrease;
- (IBAction)increase;
- (void)awakeFromNib;
@end
//Controller.m
#import "Controller.h"
#import "PolygonView.h"
@implementation Controller
@end
Qualcuno può spiegare?
PolygonShape e PolygonView probabilmente hanno importazioni cicliche. Ecco perché esistono dichiarazioni anticipate. Usali, per favore. –
PolygonShape e PolygonView non hanno importato ciclicamente, ma PolygonView e Controller lo hanno fatto. Grazie per l'aiuto! – Ridwan
@ Jason: Probabilmente sarebbe una buona risposta. – Chuck