1. 程式人生 > >iOS開發中的注意點

iOS開發中的注意點

在專案上

1.去除專案中所有的warning,warning代表程式有不穩定的地方,極有可能產生bug。

2.單個類的程式碼不要超過500行,單個函式的程式碼不要超過50行,如果超過了肯定能做抽象。

3.去除無用的註釋,影響閱讀。

4.提交到svn或者git的程式碼裡面不要出現無意義的log。

5.減少全域性變數的使用,避免全域性變數汙染。

6.給每個專案檔案加字首區分。

7.去除空方法,會開闢無用的地址。

在技術上

1.在序列化JS物件的時候要判斷data是否為空,不然會引起crash。

//data should not nil
 id result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
 id data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingSortedKeys error:nil];

2.在addObserver後一定要removeObserver,一般可在dealloc去除。

3.如果dealloc沒有被呼叫,則說明該類沒有被釋放,一般情況下說明有記憶體洩露,也可作為檢查記憶體洩露工具的思路。

4. 不需要公開的變數儘量使用私有變數。如IBOutlet不需要外部使用,儘量放在.m檔案當中。

5.[UIImage imageNamed:]會快取圖片,一般情況下不需要快取圖片,使用[UIImage imageWithContentOfURL:]。

6.把引數轉換成NSDictionary的時候要注意裡面的string不能為空,否則會crash。

//data should not nil 
NSDictionary *params = @{@"id": data};

7.NSNotificationCenter postNotificationName的時候在那個執行緒post,接收的時候就在那個執行緒,當需要重新整理UI的時候記得要保證回到主執行緒當中。

相關推薦

iOS開發選介面空白處或選背景收起鍵盤

在iOS開發中,我們會在UITextView、UITextField等控制元件裡編輯或者輸入文字結束後,需要關閉鍵盤。最經常的是,點選介面空白處或點選背景收起鍵盤。 通過在在viewDidLoad中新

微信小程式Taro開發(2):生命週期及開發注意

生命週期 componentWillMount 在微信小程式中這一生命週期方法對應頁面的onLoad或入口檔案app中的onLaunch componentDidMount 在微信小程式中這一生命週期方法對應頁面的onReady或入口檔案app中的onLaunc

iOS開發注意

在專案上 1.去除專案中所有的warning,warning代表程式有不穩定的地方,極有可能產生bug。 2.單個類的程式碼不要超過500行,單個函式的程式碼不要超過50行,如果超過了肯定能做抽象。 3.去除無用的註釋,影響閱讀。 4.提交到svn或者git的程式碼裡面不要

iOS開發兩層view上的button不響應選事件

iOS button addTarget 無法響應事件 1.問題描述 封裝了一個XYAlterview,繼承於UIView,但button addTarget 無法響應事件. 2.問題重現 @interface XYAlertView : UIView @end XYAlt

iOS開發ARC的那

        在MRC時代,Block會隱式地對進入其作用域內的物件(或者說被Block捕獲的指標指向的物件)加retain,來確保Block使用到該物件時,能夠正確的訪問。 這件事情在下面程式碼展示的情況中要更加額外小心。 MyViewController *myController = [[MyV

iOS開發oc程式碼響應js網頁選事件的方法

在APP開發中我們經常碰到一種情況:app開啟一個網頁,網頁裡有些按鈕需要我們去響應,比如開啟一個遊戲介紹的網頁,點選網頁中的“立即下載”按鈕,app需要跳轉到對應下載介面。那麼我們怎麼響應?程式碼如下: -(void)makeWeb { self.webView

iOS開發地圖與定位

視圖 編寫 aps 簡單 -a 第三方 span spa margin   不管是QQ還是微信的移動client都少不了定位功能,之前在微信demo中沒有加入定位功能,今天就寫個定位的小demo來了解一下定位和地圖的東西。地圖和定位看上去是挺高大上一東西。其有使用方法比

iOS開發,獲取iOS設備型號

bsp ios設備型號 isequal uid eve ide inf turn res 1、首先要導入頭文件   #import <sys/utsname.h> 2、代碼如下 - (NSString *)getDeviceVersionInfo{

iOS開發訪問相冊攝像像頭

created med res erro warn setup 上進 normal animate iOS開發中訪問相冊攝像像頭 源代碼下載地址http://download.csdn.net/download/jingjingxujiayou/7270479 在App

[iOS]怎樣在iOS開發切換顯示語言實現國際化

art out title oca standard 文件 creat mit 工具類 1.在Project設置,加入中英兩種語言:2.新建Localizable.strings文件,作為多語言相應的詞典,存儲多種語言,點擊右側Localization,勾選中英:3.加入

iOS開發的NSDateFormatter日期格式解析總結

星期四 class con 數字 september february 月份 mil ios開發 在工作中,常常遇到將時間解析出來轉換成自己相應要求的時間格式,之前也有收集相應的轉換格式,如今將自己收集的一部分了做個分享,應該比較完好了,歡迎大家繼續補充 年 y

iOS開發常用的宏

tar lin iter standard ffi ant height same alt OC對象判斷是否為空? 字符串是否為空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] ||

再續iOS開發的這些權限

tle store start 打開 帶來 tty 受限 bsp 不同的 前言 上篇文章iOS開發中的這些權限,你搞懂了嗎?介紹了一些常用權限的獲取和請求方法,知道這些方法的使用基本上可以搞定大部分應用的權限訪問的需求。但是,這些方法並不全面,不能涵蓋住所有權限訪問的方

iOS開發“此證書的簽發者無效”的解決方式

courier data display sina 新浪微博 tracking 項目 text 輸入 iOS開發過程中有時候會出現證書所有變成無效,例如以下圖 然後進行打包的時候會提演示樣例如以下警告: 解決方法: 第一步: 下載ht

iOS開發多線程基礎

推斷 傳遞 cti self reads priority cal default value 耗時操作演練 代碼演練 編寫耗時方法 - (void)longOperation { for (int i = 0; i <

iOS 開發的幾種設計模式

設計模式 開發 模式 ios 設計 iOS 開發中的幾種設計模式

iOS開發的position+anchorPoint與frame應用解釋

移動 pos 限制 一起 frame -1 必須 posit 解釋 我剛開始時非常困惑這兩個地方, 所以現在好好解釋一下他們的聯系. 1/ position與anchorPoint是一對屬性, 經常一起設置來確定控件的位置 frame單獨設置 2/ position

iOS開發指紋識別簡單介紹

Owner rep nsthread 進行 dao self tex 簡單 min 中指紋識別簡單介紹,在iphone系列中,是從5S以後開始有了指紋識別的功能,在ios8的時候開放的指紋驗證的接口。 所以我們在進行指紋識別應用的時候要去判斷機型以及系統的版本。 代

iOS 開發類似上下滾動彈幕實現原理

tarray void ddr 列表 fse post mar ati poi #mark ---滾動彈幕 列表中留有7條記錄 大於7條時刪除並指引表視圖向上滑動 - (void)addRowActionWithContent:(NSString *)str {

直播APP開發iOS開發的列表優化思路

uic 異步化 軟件公司 死機 直播 隱藏 屬性 頁面 底層 APP開發中,列表可能是平時我們打交道最多的UI控件之一,其重要性不言而喻,對其性能的優化同樣至關重要。而對於iOS開發,列表就是我們常說的UITableView / UICollectionView。在進行直播