需求是創(chuàng)建一個(gè)VC,創(chuàng)建后賦值參數(shù),然后VC內(nèi)部方法將利用此VC初始化時(shí)被賦值的全局變量作為參數(shù)進(jìn)行網(wǎng)絡(luò)請(qǐng)求,初始化如下:
1- (FlightDomesticFreeViewController *)freeDomesticFlightViewController
2{
3 if (_freeDomesticFlightViewController) {
4 return _freeDomesticFlightViewController;
5 }
6 _freeDomesticFlightViewController = [[TNBoss3FlightDomesticFreeViewController alloc] init];
7 _freeDomesticFlightViewController.adultNum = self.adultNum;
8 _freeDomesticFlightViewController.childNum = self.childNum;
9 _freeDomesticFlightViewController.currentSeqNum = 1;
10 _freeDomesticFlightViewController.baseSinglePriceArray = self.baseSinglePriceArray;
11 _freeDomesticFlightViewController.basePackagePrice = self.basePackagePrice;
12 _freeDomesticFlightViewController.productInfo = self.freeFlightInfoDict[PRODUCT_INFO];
13 _freeDomesticFlightViewController.selectedFlights = self.freeFlightInfoDict[SELECT_FLIGHT];
14 _freeDomesticFlightViewController.departureCityCode = self.freeFlightInfoDict[DEPARTURE_CITY_CODE];
15 _freeDomesticFlightViewController.backCityCode = self.freeFlightInfoDict[BACK_CITY_CODE];
16 _freeDomesticFlightViewController.queryFlight = self.queryFlight;
17 _freeDomesticFlightViewController.bookCity = self.bookCity;
18 _freeDomesticFlightViewController.delegate = self;
19 _freeDomesticFlightViewController.isChangeOrder = self.isChangeOrder;
20 _freeDomesticFlightViewController.view.frame = self.freeContentView.bounds;
21 _freeDomesticFlightViewController.journeyId = self.baseInfo.journeyId;
22 [_freeContentView addSubview:_freeDomesticFlightViewController.view];
23 [self addChildViewController:_freeDomesticFlightViewController];
24 return _freeDomesticFlightViewController;
}
然后測(cè)試告訴我入?yún)](méi)有journeyId這個(gè)字段,后來(lái)經(jīng)過(guò)反復(fù)斷點(diǎn)調(diào)試,發(fā)現(xiàn)20行執(zhí)行完以后便會(huì)調(diào)入VC的內(nèi)部方法,進(jìn)行網(wǎng)絡(luò)請(qǐng)求,而此時(shí)21行journeyId還未賦值,所以導(dǎo)致入?yún)⒋俗侄螢榭铡T蚓褪且驗(yàn)?0行執(zhí)行后,VC的viewDidLoad會(huì)執(zhí)行,也就是開(kāi)始執(zhí)行VC的內(nèi)部方法,故這種初始化屬性方式不可在設(shè)置frame方法后,也就是將21行代碼放在20行之前,便可避免這種低級(jí)錯(cuò)誤。