iOS注意點(diǎn)

  • 子控件的x始終與保持父控件寬度一半保持一致:

  • 使用拖拽約束的方法乓土,動(dòng)態(tài)改變約束;

  • 使用masonry痒蓬,
    make.left.equalTo(superView).with.offset(superView.frame.size.width * 0.2);

  • MacOS 10.12安全與隱私?jīng)]有允許任何來源的app選項(xiàng)解決辦法
    MacOS 10.12之后系統(tǒng)偏好設(shè)置-安全&隱私下面去除了允許安裝任何來源舀患,導(dǎo)致很多軟件運(yùn)行不了,解決方法:打開終端察蹲,輸入以下命令
    sudo spctl --master-disable

  • 枚舉enum 建議使用 NS_ENUM 和 NS_OPTIONS 宏來定義枚舉類型

  • 數(shù)據(jù)類型的正確使用

int -> NSInteger  
unsigned -> NSUInteger  
float -> CGFloat  
動(dòng)畫時(shí)間 -> NSTimeInterval
  • 無論是 MVC 模式還是 MVVM 模式,業(yè)務(wù)邏輯都不應(yīng)當(dāng)寫在 Model 里:MVC 應(yīng)在 C催训,MVVM 應(yīng)在 VM洽议。
  • 由于字符串值可能會(huì)改變,所以要把字符串相關(guān)屬性的“內(nèi)存管理語義”聲明為 copy 漫拭。
  • 禁止默認(rèn)的手勢(shì)滑動(dòng)返回
- (void)viewWillAppear:(BOOL)animated
{
      [super viewWillAppear:animated];  
      //屏蔽右滑返回手勢(shì)
      self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
  • 字符串UTF-8解碼編碼
    iOS中對(duì)字符串進(jìn)行UTF-8編碼:輸出str字符串的UTF-8格式
    [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    解碼:把str字符串以UTF-8規(guī)則進(jìn)行解碼
    [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  • UIWebView
// 清除cookies
NSHTTPCookie *cookie;
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [storage cookies]) { [storage deleteCookie:cookie];}
// 清除UIWebView的緩存
[[NSURLCachesharedURLCache] removeAllCachedResponses];
  • null的處理
    [string isKindOfClass:[NSNull class]];
    數(shù)組不允許是nil亚兄,其他情況例如setText:可以是nil
    null都不允許,可以用上面的方法排除采驻;
  • arc環(huán)境下編譯非arc
    -fno-objc-arc
  • 隨機(jī)數(shù):
    arc4random( ) 會(huì)生成任意正整數(shù)和0
    arc4random_uniform(100) 會(huì)生成0~99的整數(shù) (包括0和99,但是沒有100)
  • 打電話
    三種方式:
    1>@“tel://10010”; openURL,缺點(diǎn)但是不會(huì)回到應(yīng)用
    2>@“telprompt://10010”; openURL,缺點(diǎn)是私有API,所以可能不會(huì)被審核通過
    3>添加webView loadRequest,要注意其中webview沒有frame
  • 發(fā)短信
    1>@“sms://10010” openURL
    2>#import<MessageUI/MessageUI.h]] >
  • 發(fā)郵件
    1>@“mailto://10010@qq.com” openURL
    2>控制器
  • 為應(yīng)用評(píng)分
    注意一定要有Apple ID
NSString*appid =@"725296055";       
NSString*str = [NSStringstringWithFormat:@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid];
// 或者也可以寫http://
NSURL*url = [NSURL URLWithString:str];
[[UIApplicationsharedApplication]openURL:url];
  • 對(duì)數(shù)組中每一個(gè)對(duì)象都執(zhí)行同樣的操作有兩種方法:
    一種是遍歷數(shù)組,拿到所有的對(duì)象,進(jìn)行操作;
    還有一種是[array makeObjectsPerformSelector:@selsetor() withObject:…];
  • 計(jì)時(shí)器的方法,如果刷新的比較慢,通常是NSTimer,但是如果在很短的時(shí)間里面調(diào)用很多次方法,用CADisplayLink,一秒內(nèi)刷新60次
// 新建定時(shí)器
CADisplayLink*link = [CADisplayLinkdisplayLinkWithTarget:self selector:@selector(update)];
[link addToRunLoop: [NSRunLoop mainRunLoop]forMode:NSDefaultRunLoopMode];
self.link= link;
// CADisplayLink 作為成員變量的時(shí)候?qū)傩詤?shù)strong
// 取消定時(shí)器:
[self.link invalidate];
self.link=nil;
  • 顯示/隱藏Mac隱藏文件命令如下:
    顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
    隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
  • Tabbar的默認(rèn)高度是49
    //設(shè)定Tabbar的點(diǎn)擊后的顏色
    [[UITabBar appearance] setTintColor:[UIColor redColor]];
    //設(shè)定Tabbar的顏色
    [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
  • 自定義了leftBarbuttonItem左滑返回手勢(shì)失效了怎么辦
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:img style:UIBarButtonItemStylePlain target:self action:@selector(onBack:)];
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
  • ScrollView莫名其妙不能在viewController劃到頂怎么辦
    self.automaticallyAdjustsScrollViewInsets = YES;
  • 如果要使用靜態(tài)單元格审胚,則需要storyboard的UITableViewController
  • 根據(jù)URL創(chuàng)建 NSURLRequest 請(qǐng)求
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
//參數(shù)cachePolicy表示緩存策略,枚舉類型,值有以下幾種:
NSURLRequestUseProtocolCachePolicy = 0 NSURLRequest默認(rèn)的cache policy匈勋,使用Protocol協(xié)議定義。是最能保持一致性的協(xié)議膳叨。
NSURLRequestReloadIgnoringCacheData = 1 忽略緩存直接從原始地址下載
NSURLRequestReturnCacheDataElseLoad = 2  只有在cache中不存在data時(shí)才從原始地址下載
NSURLRequestReturnCacheDataDontLoad = 3  只使用cache數(shù)據(jù)洽洁,如果不存在cache,請(qǐng)求失敗;次策略用于沒有建立網(wǎng)絡(luò)連接離線模式;
NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4,  忽略本地和遠(yuǎn)程的緩存數(shù)據(jù)菲嘴,直接從原始地址下載饿自,與NSURLRequestReloadIgnoringCacheData類似。
NSURLRequestReloadRevalidatingCacheData = 5  驗(yàn)證本地?cái)?shù)據(jù)與遠(yuǎn)程數(shù)據(jù)是否相同龄坪,如果不同則下載遠(yuǎn)程數(shù)據(jù)昭雌,否則使用本地?cái)?shù)據(jù)。
  • 一個(gè)視圖可以有很多個(gè)手勢(shì)悉默,但是一個(gè)手勢(shì)只能添加到一個(gè)視圖,如果需要添加到另一個(gè)視圖中城豁,需要再新建一個(gè)手勢(shì);并且一個(gè)view是可以添加多個(gè)手勢(shì)抄课,但是默認(rèn)只有一個(gè)有效,要使多個(gè)手勢(shì)有效雳旅,要實(shí)現(xiàn)手勢(shì)代理方法跟磨,遵守協(xié)議<UIGestureRecognizerDelegate>,并且每個(gè)手勢(shì)都要設(shè)置代理gesture.delegate = self攒盈;
/** *  是否允許多個(gè)手勢(shì)識(shí)別器同時(shí)有效 *  Simultaneously : 同時(shí)地 */
 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{ 
   return YES;
}
  • 非arc文件和arc文件共存
    將非arc文件在arc環(huán)境下共存:
    標(biāo)記非arc文件:-fno-objc-arc
    將arc文件在非arc環(huán)境下共存:
    標(biāo)記arc文件:-f-objc-arc
  • 隨機(jī)顏色
int r = arc4random_uniform(255+1); // 表示生成0~255的隨機(jī)整數(shù)     
UIColor*color = [UIColor colorWithRed:(r)/255.0 green:(r)/255.0 blue:(r)/255.0 alpha:1.0];
  • 圖層抖動(dòng)
CAKeyframeAnimation *shake = [CAKeyframeAnimation  animation];
shake.keyPath = @“transform.translation.x”
shake.duration = 0.15;
CGFloat delta = 10;
shake.values = @[@0, @( - delta), @0, @(delta)];
shake.repeatCount = 2;
[self.view.layer addAnimation: shake forKey:nil];
  • 區(qū)分BundleVersion和BundleShortVersionString


    區(qū)分BundleVersion和BundleShortVersionString .gif

    CFBundleVersion
    CFBundleShortVersionString

  • iOS啟動(dòng)和關(guān)閉狀態(tài)欄網(wǎng)絡(luò)請(qǐng)求標(biāo)志
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];// 啟動(dòng)狀態(tài)欄網(wǎng)絡(luò)請(qǐng)求指示  
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];// 關(guān)閉狀態(tài)來網(wǎng)絡(luò)請(qǐng)求指示
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抵拘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子型豁,更是在濱河造成了極大的恐慌僵蛛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迎变,死亡現(xiàn)場(chǎng)離奇詭異充尉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)衣形,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門驼侠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谆吴,你說我怎么就攤上這事倒源。” “怎么了句狼?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵笋熬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我腻菇,道長(zhǎng)胳螟,這世上最難降的妖魔是什么苫拍? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮旺隙,結(jié)果婚禮上绒极,老公的妹妹穿的比我還像新娘。我一直安慰自己蔬捷,他們只是感情好垄提,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著周拐,像睡著了一般铡俐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妥粟,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天审丘,我揣著相機(jī)與錄音,去河邊找鬼勾给。 笑死滩报,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的播急。 我是一名探鬼主播脓钾,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼桩警!你這毒婦竟也來了可训?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤捶枢,失蹤者是張志新(化名)和其女友劉穎握截,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烂叔,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谨胞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了长已。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畜眨。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖术瓮,靈堂內(nèi)的尸體忽然破棺而出康聂,到底是詐尸還是另有隱情,我是刑警寧澤胞四,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布恬汁,位于F島的核電站,受9級(jí)特大地震影響辜伟,放射性物質(zhì)發(fā)生泄漏氓侧。R本人自食惡果不足惜脊另,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望约巷。 院中可真熱鬧偎痛,春花似錦、人聲如沸独郎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氓癌。三九已至谓谦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贪婉,已是汗流浹背反粥。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疲迂,地道東北人才顿。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鬼譬,于是被迫代替她去往敵國和親娜膘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,135評(píng)論 30 470
  • 1优质、改變 UITextField 占位文字 顏色和去掉底部白框 [_userName setValue:[UICo...
    i_MT閱讀 1,030評(píng)論 0 2
  • 前言: 以下內(nèi)容是作者在實(shí)際開發(fā)中所總結(jié)的,主要列舉了一些實(shí)用小技巧军洼,也希望在實(shí)際開發(fā)中能夠幫到你巩螃。 設(shè)置控件的圓...
    暗香有獨(dú)閱讀 1,379評(píng)論 6 33
  • 一刻一輩子 初識(shí) 那天是我們第一次說話,但短短幾分鐘的時(shí)間讓我這個(gè)半年都不記得班上一個(gè)男生的我記住了你匕争,那個(gè)年代男...
    長(zhǎng)弓心悅閱讀 222評(píng)論 0 0
  • “穿過縣界長(zhǎng)長(zhǎng)的隧道避乏,便是雪國”…… 那個(gè)如浮萍般云游四方的老先生是否已前往那片詩意雪國? 雪國沒有悲傷甘桑,沒有寒冷...
    趣讀書吧閱讀 1,071評(píng)論 0 13