開發(fā)中遇到的一些bug 記錄(比較亂,未整理)

讀取不了資源

[NSBundle mainBundle]其獲取的路徑是你程序的安裝路徑下的資源文件位置。 在xcode中采用add file to 方式添加文件時你画,一般情況下xcode會自動將文件添加到你的資源文件钥弯,而且皆刺,這些文件在你工程的 build Phases中的 copy Bundle Resources中可以查看到壶运。但是有時候,由于xcode的問題厂抽,采用add files to 不能自動添加到你的資源文件中需频,這時,可以采用copy Bundle Resources下面的“+”號筷凤,手動將文件添加到你的資源文件中


xcode 代碼一拉就直接到最底部,,而看不了中間的代碼,,無法查看..解決方法將xcode 窗口最右側(cè)全部收起..代碼在一排顯示,…沒有換行就行.


tabbar? 自定義item 圖片 會跟你使用的圖片的效果不一樣, 這是因為它是默認以填充形式展現(xiàn),,要加后面的mode 才能展現(xiàn)所有顯示

childVC.tabBarItem.image = [[UIImage imageNamed:image] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

childVC.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];



寫的block crash問題?

?對象還未創(chuàng)建 set了block,寫代碼時候不會警告,運行時候就崩潰

方法名與屬性名重名.導致block crash


UINavigationController 彈出新的UIViewController時,setNavigationBarHidden失效的問題

-(void) hideNavBar {

if (self.navigationController.navigationBar.hidden == NO){

[self.navigationController setNavigationBarHidden:YES animated:YES];

}

}


程序多數(shù)坑還是自己挖的

內(nèi)支付 .二進制文件被拒之后,,相應的內(nèi)購項目被退回,,應該及時修改,使其成為預審狀態(tài),,這樣接著提審的時候,蘋果比較看中的內(nèi)購項目,使用沙盒測試就不會出現(xiàn)崩潰情況,,(不是預審狀態(tài)獲取不下來內(nèi)購的價格和名稱)

盡可能的在備注里面說清楚項目所包含的一個業(yè)務情況和邏輯,,以減少審核人員的疑問,,不至于因為疑問被拒絕,


兩個imageview 動畫同步執(zhí)行也只能加一個began …會一起跑,…不然會導致整個app 后續(xù)操作都帶動畫

[UIView beginAnimations:@"gift_plane"context:nil];

//[UIView beginAnimations:imgUrlStr context:nil];


微信支付總結(jié) .

現(xiàn)象 . 吊起微信支付后.整個界面只出現(xiàn) 確定 按鈕..其他區(qū)域全白

微信支付.分為客戶端和后臺統(tǒng)一下訂單兩種…重點注意參數(shù)sign..移動端下訂單,所有簽名和加密都在移動端進行.在delegate 在onrepose里面用通知 對支付結(jié)果進行傳遞到對應地方 …后臺下頂端,,只有prepayid 有用,,sign 要看下是否已經(jīng)簽名過再傳過來的,,如果后臺沒有簽名就穿過來了,,要自己再次簽名.不然吊起微信后只有一個確定按鈕


直播流流播放器ijikplaer 跟環(huán)信的開發(fā)包帶實時視屏的那個包沖圖,,關(guān)于網(wǎng)絡(luò)應該,,導致播放器無法連接到服務器.無法連接解析服務器.只要你環(huán)信的參與編譯了


// 添加點擊手勢使view取消編輯狀態(tài).添加

//注意添加手勢的時機..是要在剛剛創(chuàng)建完該控件的時候立刻添加…?

- (void)addTapGestureCancleEditing{

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTap:)];

tap.delegate = self;

tap.cancelsTouchesInView = NO;

[self.view addGestureRecognizer:tap];

[_topHalfBackView addGestureRecognizer:tap];

[_bottomHalfBackView addGestureRecognizer:tap];

}

- (void)viewTap:(UITapGestureRecognizer *)gesture{

[self.view endEditing:YES];

[_accountTextfield resignFirstResponder];

[_inputMoneyTextfield resignFirstResponder];

}



app icon換圖片的時候然后提交(在svn 環(huán)境下),說圖片計劃提交但是misssing得問題

app icon removeItem 一個,拖一個進去,,svn 就不會有問題? 避免沖突


提交svn 不要將pods 文件也提交了..后面會無限沖突..每次都編譯生成新的.project,,與svn 不一致,,就會打不開


collection view 下拉刷新時候崩潰的問題…原因是,,拉的時候會走cell for row..如果此時數(shù)據(jù)沒有下來 而將舊的數(shù)據(jù)全部清楚了..cell for row 就會出現(xiàn)越界問題,,導致崩潰,,,應該等數(shù)據(jù)下來,,再清除舊數(shù)據(jù),,,再添加新數(shù)據(jù),并reload


sdwebimge? 默認進行了圖片本地和內(nèi)存同時緩存..option 可以SDWebImageRefreshCached...這樣就可以讓輪播圖 獲取最新的鏈接圖片? url 為key ..所以跟普通的不同.. 建議每次上傳新的輪播圖圖片都以日期命名..改變url


self.view 的addsubview 和inserch subview 的區(qū)別

[self.view insertSubview:_preplayBackImgView belowSubview:_tableView];插入到某個控件下面.,,,避免被蓋住


一個vc被加在多層view上面,,最底層是一個初始vc ..如何在點擊加了很多層之后的某一個view,用最下面那個vc去push 或者present 一個新的控制器需要用到遍歷響應者,,找到最近一個vc

- (UIViewController *)viewController{

for (UIView* next = self.view.superview; next; next = next.superview){

UIResponder *nextResponder = [next nextResponder];

if ([nextResponder isKindOfClass:[UIViewController class]]){

return (UIViewController*)nextResponder;

}

}

return nil;

}


主線程卡頓..第一反應應該去考慮列表加載和刷新時候里面的圖片的獲取方式..

reload tableview 卡線程..排除return height 時候的復雜計算耗時..定位到cell 里面的圖片 加載到富文本時候的網(wǎng)絡(luò)請求? 延時...urlwithcontentof url

.? 需異步加載..直接加載就會有問題...

所有卡線程的問題,,首先考慮在加載有圖片的地方是否異步加載,,,而不是 直接 ? imageData with url

同樣.. 該顯示的ui 經(jīng)常延時很久才出現(xiàn)要排查是否放在了異步子線程里面去了


float 類型 從后臺獲取時候也要使用float value? 不然不足1的時候會轉(zhuǎn)化成0;

lable 的長度不夠..文字大了..有可能出現(xiàn)文字半截字的bug ..改變寬度即可

mjRefresh 的頭部下拉刷新后會插入導航欄…跟collec 的分頁有關(guān),,去掉分頁即可,collectionView.page.enable = no


動畫過程中,鍵盤彈起..單獨監(jiān)聽鍵盤的彈起改變正在動畫的view 的frame 無效,,,需要給這個正在動畫的view 加一個父view ..鍵盤彈起時候改變他的父view 的位置即可,為了用戶體驗,一個復雜的vc,一般開始時就給self.view 添加一個跟self.view一樣大小的contentview.后面各個局部的小view再添加到這個contentview 上面..就會很容易同時對很多個局部view 進行一些操作(比如鍵盤彈起,全部上移,整體添加手勢滑動等)


collectionViewcell 重復的問題.. 不足一頁,,,會有重復的 要補齊..


跳到蘋果評分頁面

NSString* appStoreReviewLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",@"1091154038"];

collection layout后的大小是由 sizeForItemAtIndexPath 代理方法最終決定的


讀取圖片兩個方法的區(qū)別

UIImage *img = [UIImage imageNamed:@"myImage"]; // caching

UIImage *img = [UIImage imageWithContentsOfFile:@"myImage"]; // no caching

如果加載一張很大的圖片昭殉,并且只使用一次,那么就不需要緩存這個圖片嵌施。這種情況imageWithContentsOfFile比較合適——系統(tǒng)不會浪費內(nèi)存來緩存圖片饲化。

然而,如果在程序中經(jīng)常需要重用的圖片吗伤,那么最好是選擇imageNamed方法。這種方法可以節(jié)省出每次都從磁盤加載圖片的時間硫眨。


長按手勢的問題

//會調(diào)用2次,開始時和結(jié)束時

- (void)hello:(UILongPressGestureRecognizer *)longPress

{

if (longPress.state == UIGestureRecognizerStateEnded)//需要添加一個判斷

{

NSLog(@"long");

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"hello"

message:@"Long Press"

delegate:self

cancelButtonTitle:@"OK"

otherButtonTitles:nil, nil];

[alert show];

}

}


橫豎屏問題 ..將項目info里面設(shè)置為僅支持豎屏,,然后在代碼里面delegate里面處理橫豎屏的問題可行..若info里面支持橫豎屏..橫屏啟動會不走delefgate 里面的方法,,ui 會錯亂

//這句話是防止手動先把設(shè)備置為橫屏,導致下面的語句失效.就是沒有鎖定屏幕分享的時候橫屏開播的情況

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationPortrait] forKey:@"orientation"];

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationLandscapeLeft] forKey:@"orientation"];


字體下沉.lable ui出現(xiàn)錯亂的問題

_livingTitelNameLable = [MyControl createLabelFrame:CGRectMake(_livingTitelHeadButton.maxX +15, 5, SCREENW/2, _livingTitelBackVIew.height/2-10) Text:self.name? TextColor:[UIColor blackColor] TextAlignment:NSTextAlignmentLeft fontName:setCustomfont font:16.0];

//如果不限制為1行..當字過長.會出現(xiàn)字體下沉.lable ui出現(xiàn)錯亂的問題

_livingTitelNameLable.numberOfLines? = 1;


//清除設(shè)備緩存 ..比command shift + k 有效? .編譯可以..鏈接找不到文件的時候

xcode => window => project => derived data => delete


后臺推音頻需要打開 capabilities - background modes ===modes? 勾選

// [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

先推流,馬上播放一段流..不會有問題..但是 過一段時間 再播放一段視頻流..會導致沒有聲音


使用delegate的時候要注意制定delegate的時機 要在創(chuàng)建的時候

_IsLivingView = [[CBIsLivingView alloc]initWithFrame:CGRectMake(0, 180*SCREEN_SCALE,SCREENW,30*SCREEN_SCALE)];

_IsLivingView.delegate = self;

delegate ? weak 放在創(chuàng)建view的地方..不能在viewdidload 那里.


jpush 在debug線下測試時候ok ,app上線之后 代碼里面兩處也已經(jīng)設(shè)置為線上模式..但是上線后卻收不到推送?

原因在后臺 需要同時將apns_production 字段調(diào)整為true


app第一次安裝時候會有很多權(quán)限需要向用戶申請,如果一些單例都放在新特性類的viewdidload 里面.會使得app 卡在啟動頁面,,放到viewdidappear 則不會卡死.但是如果權(quán)限一次申請過多.會有系統(tǒng)的彈框一閃而過 而探后后面的權(quán)限請求.(相當于前面的請求都會出現(xiàn)兩次)的現(xiàn)象..最好的處理方式 是將獲取權(quán)限的請求分散的放到各個功能用到的地方.?



scrollview tableview collectionview ? 里面的cell 頭部錯位 跑偏 上移或者下移 使用下面代碼,但是要注意 目前基本上沒有ios7 用戶..所以要去掉此判斷?

if (IOS7_OR_LATER) {

self.edgesForExtendedLayout = UIRectEdgeNone;

self.extendedLayoutIncludesOpaqueBars = NO;

self.modalPresentationCapturesStatusBarAppearance = NO;

}


上線商店時候被拒..原因使用了alipay 的sdk ?.被蘋果檢測出api ?,移除后重新提交.仍然被拒檢測出,,仔細檢查..之前只是移除了.a 和framework...openssl因為在alipay 的文件夾下面 ,有其他地方需要用到加密等....文件夾的名字依舊為alipay ..猜測是此原因 ,把文件夾改名之后..發(fā)現(xiàn)rsa 等文件里面找不到openssl 的相關(guān)投文件..查詢知道是因為路徑問題..之前seachHeader path 為alipay ..現(xiàn)在沒有alipay 文件..所以找不到..需要設(shè)置一下路徑問新的文件夾下面.. 還有l(wèi)inkbinary ? framework 里面的 libssl.a 去掉


加密解密

對項目所有的接口進行加密.

*? ? ? 1> 加密過程是先加密足淆,再base64編碼

*? ? ? 2> 解密過程是先base64解碼,再解密

NSString *random =[self makeTimeSha];

NSString *preEncryptStr = [NSString stringWithFormat:@"%@",gkey];

NSData *data = [NSData data];

NSData *dd = [data encryptText:gkey key:random];

NSString * encryptStr? = [dd base64EncodedString];

Url = [NSString stringWithFormat:@"%@&rand=%@&value=%@",webUrl,random,encryptStr];

后臺統(tǒng)一定義一個key .用時間生成的隨機值去進行混合加密,然后用base64編碼一下, 后臺解密ok 就返回請求數(shù)據(jù)


濫用繼承關(guān)系

導航欄透明度的設(shè)置.除了跟自定義的導航欄里面的顏色設(shè)置有關(guān)系.如果有繼承關(guān)系的baseVC里面也對導航欄的定義做了處理(方便全局統(tǒng)一處理導航欄定義).也會影響某個類對自己導航欄顏色的設(shè)置..較難以排查

baseVC里面的對導航欄設(shè)置的每一個屬性,,在push .pop 之后都會對自定義的導航欄有影響...bug 較深,,

dataDic = [NSDictionary dictionaryWithObjectsAndKeys:@"2",@"goods_id", ? 標準的字典寫法有時候回無緣無故 崩潰 并且沒有任何提示..賦值后面的key 和value ?改一下.替換 就好了..猜測是中英文格式原因..不得解


malloc: *** error for object 0x178010000: pointer being reallocated was not allocated

指針錯誤. ?首頁數(shù)據(jù)請求較多.不斷的下拉刷新之后 app 發(fā)生崩潰. ?要看內(nèi)存..可能是因為內(nèi)存的暴漲 沒有釋放 ,導致崩潰 ,,排除法 重點檢查 cell 以及cell 里面的控件等創(chuàng)建..是否在不斷的新創(chuàng)建 ?,沒有移除



stringWithContentsOfURL ?獲取某一地址返回的內(nèi)容,始終是nil ??

NSURL?*url?=?[NSURL?URLWithString:@"http://xxxx.xxx.net/xxx/?xxx.html"];return?[[NSString?stringWithContentsOfURL:url?encoding:NSUTF8StringEncoding?error:nil]?objectFromJSONString];

? ? 但是發(fā)現(xiàn)返回值為nil礁阁,但是在網(wǎng)頁中能打開網(wǎng)頁巧号,并沒有錯的,寫到這里都懵逼了 項目有中并沒有報錯

? ? 最后發(fā)現(xiàn)IOS6引入了APP Transport Security(ATS),新特性要求app內(nèi)訪問的網(wǎng)絡(luò)必須使用HTTPS協(xié)議

? ? ? ? ? ? ??但是項目中是HTTP協(xié)議姥闭,使用私有加密方式保證數(shù)據(jù)安全 丹鸿,改成HTTPS協(xié)議傳輸太麻煩了

? ? ? ? ? ? ? 打開項目的?Info.plist中添加NSAppTransportSecurity類型Dictionary。

? ? ? ? ? ? ? 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads類型Boolean,值設(shè)為YES棚品。 ?

?但是有些小伙伴們在info.plist可能找不到NSAppTransportSecurity是因為

1.Xcode7.0中這項設(shè)定的名稱為:NSAppTransportSecurity

2.Xcode7.1之后這項設(shè)定的名稱為:App Transport Security Setting


時間格式問題 ? ? ?? ??

yyyy-MM-dd-HH:mm:ss 才是年月日標準時間 ? 寫成 ?YYYY-MM-dd-HH:mm:ss ?會導致在2017/12/31 給返回 成了2018/12/31 ?因為最后一周的原因 也因為這個造成重大bug ?獲取時間不對導致時間全部錯誤



最近測試發(fā)現(xiàn)在某個頁面的UITextView輸入中文時靠欢,會顯示輸入錯亂,如上圖所示铜跑。語言問題门怪,輸入法等可能因素后,鎖定了問題的所在: ??為了實現(xiàn)字數(shù)限制 和禁止輸入換行符锅纺,我在回調(diào)函數(shù)里寫了如下的坑爹代碼: ?

-(void)textViewDidChange:(UITextView*)textView{

textView.text?= ? [textView.text?stringByReplacingOccurrencesOfString:@"\n"?withString:@""];

NSUIntegerlen =MIN([textView.textlength],140);

? ?textView.text?= [textView.text?substringToIndex:len];

countLabel.text= len>0?[NSStringstringWithFormat:@"還可輸入%d字",140-len]:@"最多50字";

? ??countLabel.textColor?= len<140?[UIColor?colorWithWhite:0.5alpha:1]:[UIColor?redColor];

}

在監(jiān)聽textview的時候和賦值的時候需要注意代碼




項目中有需要用到列表,每行樣式相同,行數(shù)不多,但是又不希望列表重用(在列表上有很多輸入等其他操作,便于取值,重用會出現(xiàn)問題) ? 采用了每一個id 不一樣的方式創(chuàng)建,在需要的地方 需要取出該行的cell 及cell內(nèi)的某些數(shù)據(jù).給cell設(shè)置tag 的時機很重要 ,必須要在創(chuàng)建那一刻去設(shè)置,不然可能會導致有時取不到改tag值的情況.也可將cell存到到一個數(shù)組在判斷位nil 的時候,取數(shù)組的下標 即可將cell 取出

NSString *idstr = [NSString stringWithFormat:@"%ld",(long)indexPath.row];

? ? ZJChunQiangTableViewCell *chunqiangcell = [tableView dequeueReusableCellWithIdentifier:idstr];

? ? if (chunqiangcell == nil) {

? ? ? ? chunqiangcell = [[ZJChunQiangTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:idstr];

//? ? ? ? if(!_cellArr){

//? ? ? ? ? ? _cellArr = [NSMutableArray new];

//? ? ? ? }

//? ? ? ? [_cellArr addObject:chunqiangcell];


? ? ? ? chunqiangcell.tag = (int)indexPath.row+10000;


? ? }





歡迎交流 qq 1062080667

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掷空,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子囤锉,更是在濱河造成了極大的恐慌坦弟,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件官地,死亡現(xiàn)場離奇詭異酿傍,居然都是意外死亡,警方通過查閱死者的電腦和手機区丑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門拧粪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來修陡,“玉大人,你說我怎么就攤上這事可霎∑茄唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵癣朗,是天一觀的道長拾因。 經(jīng)常有香客問我,道長旷余,這世上最難降的妖魔是什么绢记? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮正卧,結(jié)果婚禮上蠢熄,老公的妹妹穿的比我還像新娘。我一直安慰自己炉旷,他們只是感情好签孔,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窘行,像睡著了一般饥追。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罐盔,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天但绕,我揣著相機與錄音,去河邊找鬼惶看。 笑死捏顺,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的碳竟。 我是一名探鬼主播草丧,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼莹桅!你這毒婦竟也來了昌执?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤诈泼,失蹤者是張志新(化名)和其女友劉穎懂拾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铐达,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡岖赋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓮孙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唐断。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡选脊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脸甘,到底是詐尸還是另有隱情恳啥,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布丹诀,位于F島的核電站钝的,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏铆遭。R本人自食惡果不足惜硝桩,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枚荣。 院中可真熱鬧碗脊,春花似錦、人聲如沸橄妆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呼畸。三九已至,卻和暖如春颁虐,著一層夾襖步出監(jiān)牢的瞬間蛮原,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工另绩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留儒陨,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓笋籽,卻偏偏與公主長得像蹦漠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子车海,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容