1、如何通過代碼設置Buttontitle的字體大小
設置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 開發文檔 流程圖 UI 框架 接口 功能 適配 測試 更改
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方法中分別負責各自的實例化處理,代碼彼此之間的獨立性強,松耦合