Wie kann man die Warnung "Autosynthesized Eigenschaft 'myVar' wird die Verwendung synthetisiert, die Instanz-variable "_myVar', nicht vorhandene Instanz-variable 'myVar' "?

Ich erkläre meine .h-Datei wie folgt:

#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

Und meine .m-Datei wie diese hier:

#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;

Alle meine Variablen in der @synthesize erhalten die Warnungen:

Autosynthesized Eigenschaft 'myVar' wird die Verwendung synthetisiert, die Instanz-variable "_myVar', nicht vorhandene Instanz-variable 'myVar'

Auch, die Variablen-und Klassennamen verwendet in viewDidLoad keine Anzeige in Farben, in schwarz Farbe. In anderen view-Controller, es sind keine Warnungen wie diese. Wie diese Probleme zu beheben?

  • Warum sind Sie zu synthetisieren und zu erklären, Ihre ivars?
  • Ich könnte darauf hindeuten, zu beobachten WWDC 2012 video Moderne Objective-C, die Gespräche über nicht mehr benötigen, explizit zu erklären, ivars, dass Ihre Eigenschaften so gut wie gar nicht benötigen, um explizit @synthesize mehr.
  • bedeuten, zu entfernen alle Deklarationen im interface und Aussagen synthetisieren?
  • Die beste Praxis ist es nicht zu erklären, den Rückhalt ivars oder verwenden Sie @synthesize. Nur deklarieren Sie öffentliche @property Variablen in Ihrem .h, setzen Sie Ihre privaten Kosten in die Klasse Erweiterung an der Spitze Ihrer .m - Datei. Keine Notwendigkeit zu @synthesize mehr.
  • möglich, Duplikat der Autosynthesized Eigenschaft 'delegieren' verwenden synthetisiert Instanz-variable "_delegate', nicht vorhandene Instanz-variable 'Delegat'
InformationsquelleAutor HelenWang | 2013-10-21
Schreibe einen Kommentar