工作問題隨筆

第一篇在簡書上的文章,以前都是寫在博客上,但是也得跟上時代的步伐不是..雖然有點晚 ? -.-

1.在searchBar上的UIText中字符串不能及時獲取問題,只需要把獲取的string轉換成可變字符串就可以

NSMutableString*newtxt = [NSMutableStringstringWithString:textField.text];

[newtxtreplaceCharactersInRange:rangewithString:string];

2.Tableview不識別touchesBegan方法

UITableView是不會響應touchesBegan:withEvent:之類的UIResponder的方法的。因此,加在其上的所有視圖的響應者鏈就斷了。如果在UITableView其上加任何的自身不具備類似UIButton一樣有目標動作機制的UIView及其子類控件的時候,這個控件也不會響應touchesBegan:withEvent:方法。即便是設置該控件的userInteractionEnabled為YES也沒用。

如此一來,如果想要這些控件具有交互性能怎么辦?有一種很直觀的方法,給這個控件加上手勢識別器。

- (void)addAGesutreRecognizerForYourView

{

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesturedDetected:)]; // 手勢類型隨你喜歡。

tapGesture.delegate = self;[yourView addGestureRecognizer:panGesture];

}

- (void)tapGesturedDetected:(UITapGestureRecognizer *)recognizer

{

// do something

}

3.SDWebImage的三級緩存,大量圖片是否造成APP crash

首先檢查了SDWebImage代碼中對于memory warning的處理:

- (void)clearMemory {

[self.memCache removeAllObjects];

}

其中self.memCache是NSCache類型的,可以看到SDWebImage本身對內存警告執行了操作,但是并沒有什么X用。

可以看到內存基本都在decodedImageWithImage:這個方法里被占用了

在使用SDWebImage加載較多圖片造成內存警告時,定期調用

[[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];

可解決。

4.Didload里面直接show一個UIAlertController 會顯示不出來

剛步入iOS開發會遇到這個問題,警告是 viewcontroll沒有被加載

非常典型的一個生命周期問題,把show?UIAlertController 這個操作放在ViewDidApear中,等待當前視圖控制器加載完了之后再調用UIAlertController控制器,這樣的話就可以調用了.

5.模態界面的直接返回父視圖的根視圖

self.presentingViewController.view.alpha=0;

[self.presentingViewController.presentingViewControllerdismissViewControllerAnimated:YEScompletion:nil];

6.解決cell分割線缺失一段

-(void)viewDidLayoutSubviews {

if([self.tableViewrespondsToSelector:@selector(setSeparatorInset:)]) {

[self.tableViewsetSeparatorInset:UIEdgeInsetsZero];

}

if([self.tableViewrespondsToSelector:@selector(setLayoutMargins:)])? {

[self.tableViewsetLayoutMargins:UIEdgeInsetsZero];

}

}

-(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPat{

if([cellrespondsToSelector:@selector(setLayoutMargins:)]) {

[cellsetLayoutMargins:UIEdgeInsetsZero];

}

if([cellrespondsToSelector:@selector(setSeparatorInset:)]){

[cellsetSeparatorInset:UIEdgeInsetsZero];

}

7.在模態界面添加timer

主線程,運行時Runloop機制問題,響應者鏈找不到當前視圖控制器的Runloop,需要添加一個線程,把timer放在這個線程的RunLoop中,注意釋放.在請求中添加timer會阻塞請求線程,整個APP線程會崩潰

dispatch_async(dispatch_get_global_queue(0,0), ^{

NSTimer*t = [NSTimerscheduledTimerWithTimeInterval:1.0f

target:self

selector:@selector(configureTimerr:)

userInfo:@{@"strTime":strTime,@"endTime":endTime}

repeats:YES];

[[NSRunLoopcurrentRunLoop]addTimer:tforMode:NSDefaultRunLoopMode];

[[NSRunLoopcurrentRunLoop]run];

});

8.init里邊初始controller.注冊通知.通知無效

通知的結果操作view,還沒調用load view,view為nil

9.防止用戶多次點擊按鈕彈窗重復

@synchronized(self){

if (self.view.userInteractionEnabled == NO)

return;

}

self.view.userInteractionEnabled = NO; //防止用戶多次點擊按鈕彈窗重復

10.performSeletor...afterDelay在子線程不能使用

performSeletor...afterDelay這個函數一定要在主線程用,在子線程使用不延遲

11.判斷是否有自定義鍵盤

自定義鍵盤和第三方鍵盤的class不一樣

NSArray*array = [UITextInputModeactiveInputModes];//獲取鍵盤類型個數

if([[[UIDevicecurrentDevice]systemVersion]floatValue] >=9.0) {

//系統大于9.0的時候,在系統鍵盤上多了一層layer層可修改

temp = [[[UIApplicationsharedApplication]windows]objectAtIndex:2];

}else{

//系統不大于9.0時候,在系統鍵盤上沒有那一層

temp = [[[UIApplicationsharedApplication]windows]objectAtIndex:1];

}

[tempaddSubview:_dianBT];

12.[UIScreen mainScreen].bounds.size.width值不改變問題

在LaunchImage中必須有Default.png和Default-568h.png文件,如果iOS 檢測不到這兩個文件就不會根據屏幕尺寸適配

13.tableview和collection view中的手勢沖突問題

//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

//??? DLog(@"1");

//??? if ([touch.view isKindOfClass:[UITextField class]])

//??? {

//??????? return NO;

//??? }

//??? //若為UITableViewCellContentView(即點擊了tableViewCell),則不截獲Touch事件

//??? if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {

//??????? return YES;

//??? }

//??? return YES;

//}

14.百度地圖-雷達搜索坑點

(1) 第一次檢索的時候是以當前用戶的位置為中心進行檢索(默認)

(2) 上傳第一次的位置信息是檢索不出來的,因為是以最后上傳的位置為中心檢索

(3) 第二次上傳信息之后,可以檢索到第一次上傳的信息,因為是以第二次上傳的位置為中心進行檢索,可以檢索到第一次的位置信息,但是返回的數組中沒有當前上傳的信息.

總結:總歸當前上傳的是查不出來的,因為是默認為中心點的.不上傳的話是默認為當前位置

(4) 百度官方中Demo設置雷達的時候,中心點的坐標獲取是一個監聽,要是用戶不移動的話獲取不到用戶位置,也就獲取不到數據(BUG)

(5) 百度周邊雷達上傳自己位置的時候,上傳的備注信息中不能有”/“符號(可能還有其他限制,暫時就知道不能上傳”/“),倒是可以上傳”-"這個符號

這段代碼!!!!

[_mapview showAnnotations:@[_annotation] animated:NO];

會自動把視角移動到這幾個標記點上

15.push幾種跳轉問題(個人認為比較不容易出問題的方式)

(1) ? ? [self.tabBarController.tabBarsetTranslucent:NO];? (在用storyboard時隱藏tabbar)

(2)?????yourVC.hidesBottomBarWhenPushed=YES;(在用XIB時隱藏tabbar)

(3)?????self.hidesBottomBarWhenPushed=YES;(沒有XIB時隱藏tabbar)

16.獲取父視圖控制器

- (UIViewController*)viewController

{

for(UIView* next = [selfsuperview]; next; next = next.superview) {

UIResponder*nextResponder = [nextnextResponder];

if([nextResponderisKindOfClass:[UIViewControllerclass]]) {

return(UIViewController*)nextResponder;

}

}

returnnil;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容

  • 1、禁止手機睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,130評論 1 6
  • 1、禁止手機睡眠 [UIApplicationsharedApplication].idleTimerDisabl...
    小熱狗閱讀 912評論 0 2
  • 創建元組 獲取元組中的數據 遍歷元組 轉化成String
    牛馬風情閱讀 841評論 0 1
  • 同學們陸陸續續地實習,我還待在學校等通知。討厭這樣拖拖拉拉的效率,然而這就是生活,總會有很多莫名其妙的東西,考驗人...
    Caylin閱讀 139評論 0 1
  • 是灰的一層接一層的高樓,也是揚起又揚起的灰塵。成都,這座古都。對于它,我這個成都郊區的成都鄉下人,感情并未有土生土...
    馬北田閱讀 245評論 0 0