oc類的聲明和定義的常見錯誤
1、隻有類的聲明,沒有類的實作
2、漏了@end
3、@interface和@implementation嵌套,也就是@interface或者@implementation和@end必須成對出現!兩者中間不能嵌套任何别的。
4、成員變量沒有寫在括号裡面
5、方法的聲明寫在了聲明的大括号裡面,或者方法的實作寫在了聲明裡。這都是不對的。
6、忘記了:nsobject
7、想直接修改類成員變量,但是沒有設定為@public
8、類的聲明裡的執行個體變量,不能在聲明的時候初始化。
9、不能把成員變量當做c語言的變量,比如加static,不對!類的聲明裡隻能寫類的成員變量名
10、記住:方法是方法,函數是函數,也不能給方法加比如static。沒有這個東西
11、成員變量不能在{}中進行初始化、預設不能被直接拿出去通路
12、方法不能當做函數一樣調用或者聲明,對象方法隻能是對象來調用
13、類的實作可寫在main函數的後面,隻要在類的聲明後面就行了
14、記住:oc裡對象方法名包含冒号,oc不允許方法名一樣,-或者+不是方法名
oc方法和函數的差別
1、oc方法隻能聲明在@interface和@end之間,隻能實作在@implementation和@end之間。也就是說oc方法不能獨立于類存在
2、c函數不屬于類,跟類沒有聯系,c函數隻歸定義函數的檔案所有
3、c函數不能通路oc對象的成員
4、低級錯誤:方法有聲明,但是實作的時候寫成了函數
5、oc的函數可以寫在檔案的任何位置(除@interface和@end之間除外,可以寫在類的實作裡),歸檔案所有
oc的方法使用注意
1、方法隻有聲明,沒有實作(這是經典錯誤)
2、方法沒有聲明,隻有實作(編譯器警告,但是能調用,oc的弱文法)
3、編譯的時候:通路沒有的成員變量直接報錯,通路沒有的方法,隻是警告,弱文法
4、沒有@interface,隻有@implementation,也能成功定義一個類


類裡涉及到聲明性别,時間等
如果用布爾類型定義性别,不太好,容易讓外人搞混,不利于團隊的代碼共享。如果屬性隻有幾個固定的取值,那麼最好用枚舉。
對于年月日的聲明不要寫成這樣,很傻,很累,
使用結構體
程式代碼如下:


xcode 的代碼提示功能的關閉和開啟
再次熟悉下,oc 裡方法名,方法類型,傳回值類型,方法參數的部分
開發 ios 到一定程度,要習慣看蘋果的官方文檔
oc 裡的資料類型
object-c提供基本資料類型:int 、float 、double 、char
int:
八進制 ,整型第一位為 0, nslog 的格式符為: %o ,顯示的八進制不帶前導 0
十六進制 ,以 0x 開頭的整型,nslog 的格式符為: 若(%x 或%#x) 顯示的十六進制用大寫
%#o 顯示的八進制帶前導0
%x 顯示的十六進制不帶前導 0x
%#x 顯示的十六進制帶前導0x
float:
nslog 的格式符:%f
nslog 的格式符:%e 科學計數法顯示值
nslog 的格式符:%g 指數的值小于-4 大于 5,采用%e,否則采用%f
十六進制的浮點常量包含前導 0x 或 0x,後面緊跟一個或多個十進制或十六進制數字,再後是p 或 p,最後,是可以帶符号的二進制指數。例:0x0.3p10 表示的值為 3/16*2^10
注:若無特殊說明,object-c 将所有的浮點常量看做 double 值,要顯示 double 值可使用和 float一樣的格式符。
char:
nslog 的格式符:%c
long double 常量寫成尾部帶有字母 l 或者 l 的浮點常量。1.234e+7l
注:id 類型可以通過類型轉化符可以将一般的id 類型的對象轉換成特定的對象。
_bool ;處理 boolean(即 0 或 1)
_complex;處理複數
_imaginary;處理抽象數字
鍵盤輸入:
執行個體變量的初始化值預設為 0
執行個體變量作用域的指令:
@protected;執行個體變量可被該類及任何子類中定義的方法直接通路(預設的情況) 。
@private;執行個體變量可被定義在該類的方法直接通路,不能被子類定義的方法直接通路。
@public;執行個體變量可被該類中定義的方法直接通路,也可被其他類或子產品中定義的方法通路。使得其他方法或函數可以通過(->)來通路執行個體變量(不推薦用) 。
@package;對于 64 位圖像,可以在實作該類的圖像的任何地方通路這個執行個體變量。
在類中定義靜态變量和 c 一樣
voaltile說明符和const 正好相反,明确告訴編譯器,指定類型變量的值會改變。(i/o端口)
比如要将輸出端口的位址存儲在 outport 的變量中。
這樣就可以避免編譯器将第一個指派語句從程式中删除 。
枚舉資料類型、typedef 文法以及資料類型的轉換和 c 也是一樣。
辛苦的勞動,轉載請注明出處,謝謝……
http://www.cnblogs.com/kubixuesheng/p/4307783.html