iOS 小知識點(持續更新),ios知識點持續更新
1、如何通過代碼設定Button title的字型大小
設定Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] ;
2、擷取目前時間
NSDate *timeDate=[NSDate date]; NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYYMMddHHmmsssss"]; NSString *locationString=[dateformatter stringFromDate:timeDate];
3、判斷字串是否為空白字元的方法
- (BOOL) isBlankString:(NSString *)string { if (string == nil || string == NULL) { return YES; } if ([string isKindOfClass:[NSNull class]]) { return YES; } if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) { return YES; } return NO;}
4、tableView最佳化
//重新整理整個表格 [_tableView reloadData]; //重新整理當前行 [_tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
5、百度地圖自訂圖釘圖片
- (BMKAnnotationView *)mapView:(BMKMapView *)view viewForAnnotation:(id <BMKAnnotation>)annotation{ // 產生重用標示identifier static NSString *AnnotationViewID = @"AnnotationViewID"; // 檢查是否有重用的緩衝 BMKAnnotationView* annotationView = [view dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID]; ((BMKPinAnnotationView*)annotationView).pinColor = BMKPinAnnotationColorGreen; annotationView.image = [UIImage imageNamed:@"XXX.png"];}
6、iOS APP上架所需要的 螢幕尺寸
640*960、640*1136、750*1334、1242*2208
7、iOS APP 表徵圖的尺寸
58*58、80*80、120*120、180*180
8、
蘋果公司帳號申請:這個是申請方法:http://jingyan.baidu.com/article/0320e2c1d153161b87507bba.html這個是官網:https://developer.apple.com/enroll/organization/
9、關閉定時器
[_myTimer invalidate];
_myTimer = nil;
10、鍵盤釋放第一響應
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
11、點擊UITableViewCell時,沒有點擊效果,
在cellForRowAtIndexPath:方法中寫上
cell.selectionStyle = UITableViewCellSelectionStyleNone;
12、使用NSJSONSerialization 返回的對象,取決於最外層是什麼,如果是{}那就是字典,[]那就是數組等
13、只支援豎屏,修改info.plist 檔案就可以了。找到"Supported interface orientations" 設定item 項為Portrait就可以了。這個設定為全域設定。
14、iOS開發
先搭架構,後畫介面,寫功能,寫介面,調試,寫適配
iOS 開發文檔 流程圖 使用者介面架構 介面 功能 適配 測試 更改
iOS 初級開發工程師 C語言基礎+swift語言基礎
中級iOS開發工程師 iOS項目開發+UI部分+動畫圖層部分
15、ViewController的生命週期中各方法執行流程如下:
init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc
16、GCD
1)運行在主線程的Main queue,通過dispatch_get_main_queue擷取。
2)並行隊列global dispatch queue,通過dispatch_get_global_queue擷取,由系統建立三個不同優先順序的dispatch queue。並行隊列的執行順序與其排入佇列的順序相同。
3)串列隊列serial queues一般用於按順序同步訪問,可建立任意數量的串列隊列,各個串列隊列之間是並發的。
17、Xcode項目中我們經常遇到因為空白資料(伺服器傳回來的資料通過JsonKit解析為之類的)導致記憶體流失進而程式崩潰的現象,這個在之前學校的時候就被坑了很多次,所以有必要封裝一個非空處理的類,由於能力有限,查看一些網上的資料,想到採用遞迴的方式處理。
解決辦法:一個老外早已在Githud有了空處理的神器:https://github.com/nicklockwood/NullSafe,只要將這個類別(Category)加入項目中就可萬事無憂,由於裡面代碼我也不太懂,所以大家自己研究下哈。
18、讀取plist檔案
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"provinces.plist" ofType:nil];
NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];
// 載入plist資料 // 一個NSBundle對象對應一個資源套件(圖片、音頻、視頻、plis等檔案)// NSBundle的作用:用來訪問與之對應的資源套件內部的檔案,可以用來獲得檔案的全路徑// 項目中添加的資源都會被添加到主資源套件中// [NSBundle mainBundle]關聯的就是項目的主資源套件 NSBundle *bundle = [NSBundle mainBundle]; // 利用mainBundle獲得plist檔案在主資源套件中的全路徑 NSString *file = [bundle pathForResource:@"shops" ofType:@"plist"];// NSString *file = [bundle pathForResource:@"shops.plist" ofType:nil]; // 凡是參數名為File,傳遞的都是檔案的全路徑 shopsArray = [NSArray arrayWithContentsOfFile:file];
19、懶載入:用到時再去載入,而且也只載入一次
(1).懶載入基本
懶載入——也稱為消極式載入,即在需要的時候才載入(效率低,佔用記憶體小)。所謂懶載入,寫的是其get方法.
注意:如果是懶載入的話則一定要注意先判斷是否已經有了,如果沒有那麼再去進行執行個體化
(2).使用懶載入的好處:
好處一:不必將建立對象的代碼全部寫在viewDidLoad方法中,代碼的可讀性更強
好處二:每個控制項的getter方法中分別負責各自的執行個體化處理,代碼彼此之間的獨立性強,松耦合