提交APPStore審核因ipv6問題被拒
We discovered one or more bugs in your app when reviewed on iPhone running iOS 10.0.2 on Wi-Fi connected to an IPv6 network.
- Unable to log in
- Internet issue
We've attached screenshot(s) for your reference.
經(jīng)過在ipv6環(huán)境下測試問題沒有復(fù)現(xiàn),等待結(jié)果(重新提交二進(jìn)制文件后審核通過,并沒有什么問題)
2016年10月27日,提交的新版本UI調(diào)整摩梧,再次被拒絕,原因是登錄頁面鍵盤遮擋按鈕(以后注意以舒,有輸入的頁面柑土,鍵盤一定要能夠隨時(shí)收起,細(xì)節(jié)W糜琛)
關(guān)于CollectionView
使用storyboard創(chuàng)建collectionView時(shí)需要自定義header和footer磺箕,只要勾選上Section Header和Section Footer兩個(gè)選項(xiàng)兩個(gè)reuseView就會(huì)出現(xiàn)在storyboard里面,不需要自己去控件里拖(關(guān)鍵是拖也拖不進(jìn)去……),分別設(shè)置好identifier霎终,代碼里面復(fù)用時(shí)要分清滞磺,雖然兩個(gè)reuseView看著一樣。
關(guān)于一些UI上出現(xiàn)的奇怪的Bug
一些界面的子控件并不是鋪滿整個(gè)屏幕莱褒,因此控件之間銜接的縫隙要多加注意,例如tableView或者collectionView和底部自定義Bar之間涎劈。
在collectionView的cell里面有個(gè)imageView广凸,約束什么的都做好了,可是發(fā)現(xiàn)顯示出來圖片距離上邊界的距離跟設(shè)置的怎么不一樣蛛枚?谅海!怎么調(diào)都調(diào)不好,最后發(fā)現(xiàn)是圖片的contentMode設(shè)置問題蹦浦,圖片超出控件顯示了扭吁。
關(guān)于自定義轉(zhuǎn)場的問題
項(xiàng)目中用到了自定義轉(zhuǎn)場(present和dimiss)彈出,但是實(shí)現(xiàn)后發(fā)現(xiàn)彈出動(dòng)畫會(huì)有長時(shí)間卡頓,難道presentViewController方法是異步執(zhí)行的侥袜?解決辦法:
dispatch_async(dispatch_get_main_queue(), ^{
[self presentViewController:popupVC animated:YES completion:nil];
});
彈出后另一個(gè)controller后還想實(shí)現(xiàn)點(diǎn)擊背景區(qū)域返回(dissmiss)蝌诡,這比單純的點(diǎn)按鈕返回稍微復(fù)雜,解決辦法(給window添加手勢(shì)):
/*添加一個(gè)點(diǎn)擊背景返回fromVC的手勢(shì)*/
- (void)addTapDismiss {
UIWindow *appWindow = [UIApplication sharedApplication].keyWindow;
UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind:)];
[tapGes setNumberOfTapsRequired:1];
tapGes.cancelsTouchesInView = NO;
[appWindow addGestureRecognizer:tapGes];
}
- (void)handleTapBehind:(UITapGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded){
CGPoint location = [sender locationInView:nil];
if (![self.view pointInside:[self.view convertPoint:location fromView:self.view.window] withEvent:nil]){
[self.view.window removeGestureRecognizer:sender];
[self dismissAction:nil];
}
}
}
關(guān)于統(tǒng)一性的問題
不同界面會(huì)用到相同表現(xiàn)形式的Cell或者View枫吧,最好能夠復(fù)用浦旱,以便統(tǒng)一管理和更改,用單獨(dú)的xib或者單獨(dú)的類來定義這些公共的view應(yīng)該是最好的選擇九杂。
數(shù)據(jù)格式導(dǎo)致的崩潰問題
1.創(chuàng)建字典時(shí)因?yàn)閿?shù)據(jù)來源問題致使value為nil
2.使用三方庫dateTool時(shí)的[NSDate dateWithString:serverDate formatString:ServerDateFormat]方法颁湖,傳入的string為空時(shí)崩潰
3.往一個(gè)字符串的指定位置index插入字符,如果該字符串長度為0
4.在創(chuàng)建NSMutableString或者是NSMutableAttributedString時(shí)例隆,使用initWithString方法時(shí)傳入nil會(huì)崩潰
so甥捺,we should
- 不要過分相信服務(wù)器返回的數(shù)據(jù)格式
- 在對(duì)數(shù)據(jù)處理上,要進(jìn)行容錯(cuò)處理镀层,進(jìn)行相應(yīng)判斷之后再處理數(shù)據(jù)镰禾,這是一個(gè)良好的編程習(xí)慣