16

我像这样声明我的 .h 文件:

#import <UIKit/UIKit.h>

@interface NavigationTripViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>{
    NSArray *questionTitleTrip;
    NSArray *questionDescTrip;
    NSMutableArray *answerTrip;
    NSMutableArray *pickerChoices;
    int questionInt;
    int totalInt;
    IBOutlet UILabel *questionNum;
    IBOutlet UILabel *questionTotalNum;
    IBOutlet UILabel *recordType;
    IBOutlet UITextView *questionDes;
    IBOutlet UIView *answerView;
    IBOutlet UIButton *preButton;
    IBOutlet UIButton *nextButton;
    UITextField *text;
    UIPickerView *picker;

}
@property (retain, nonatomic) NSArray *questionTitleTrip;
@property (retain, nonatomic) NSArray *questionDescTrip;
@property (retain, nonatomic) NSMutableArray *answerTrip;
@property (retain, nonatomic) NSMutableArray *pickerChoices;
@property (retain, nonatomic) IBOutlet UILabel *questionNum;
@property (retain, nonatomic) IBOutlet UILabel *questionTotalNum;
@property (retain, nonatomic) IBOutlet UILabel *recordType;
@property (retain, nonatomic) IBOutlet UITextView *questionDes;
@property (retain, nonatomic) IBOutlet UIView *answerView;
@property (retain, nonatomic) IBOutlet UIButton *preButton;
@property (retain, nonatomic) IBOutlet UIButton *nextButton;
@property (retain, nonatomic) UITextField *text;
@property (retain, nonatomic) UIPickerView *picker;
-(IBAction)clickPre;
-(IBAction)clickNext;
@end

我的 .m 文件在这里是这样的:

#import "NavigationTripViewController.h"
#import <QuartzCore/QuartzCore.h>

@interface NavigationTripViewController ()

@end

@implementation NavigationTripViewController

@synthesize questionTitleTrip,questionDescTrip,answerTripl,pickerChoices,questionNum,questionTotalNum,recordType,questionDes,answerView,preButton,nextButton,text,picker;

我的所有变量都@synthesize收到警告:

自动合成的属性“myVar”将使用合成的实例变量“_myVar”,而不是现有的实例变量“myVar”

此外,其中使用的变量和类名viewDidLoad不以颜色显示,仅以黑色显示。在其他视图控制器中,没有这样的警告。如何解决这些问题?

4

1 回答 1

23

编辑:基本上出于所有意图和目的,您应该在足够新的 XCode 上构建以使用新行为,在该解决方案中,您通常只需从文件中的@interface块中删除 ivar .h...如果由于某种原因您确实需要直接访问 ivar,您现在可以在@implementation块中声明它...并使用@synthesize var@synthesize var=_var

OGPost:

要消除这种情况,您可以去所有新学校并删除 iVar,或者您可以去所有旧学校并@synthesize someIvar在您的@implementation块中添加一个。

于 2013-10-21T22:47:23.197 回答