各種ios語法

2021-06-19 10:11:35 字數 2988 閱讀 9859

@property (nonatomic, strong) a1--@synthesize a1 的用法:

一般在別的類如a2中使用 

類a.a1屬性/ self.a1

的時候才用到,a.m中可以不用(但self.a1除外),直接對a1進行賦值操作

true和false、true和false、yes和no、1和0都是一樣的

1、型別不同

bool為布林型

bool為int型

2、長度不同

bool單獨佔乙個位元組

bool長度視實際環境來定,一般可認為是4個位元組

3、跨平台特性

bool是標準c++中的布林量,佔乙個位元組大小記憶體,只有false或者true。具有跨平台特性。

bool是microsoft mfc定義的巨集:  typedef int bool; 

也就是說bool型別實際上是int型別不是bool型別,取值為:true或false、定義語法為:

#define false 0  

#define true  1

其實是個int型別,佔四個位元組大小記憶體,其值為false或true。不具有跨平台特性。

4、取值不同

bool取值false和true,是0和1的區別。

bool取值false和true,是0和非0的區別

例子bool x=3;  // 警告

bool x=1;  // 正確

bool x=3;  // 正確

bool x=3.3;// 警告

5、類別不同

bool屬於標準c語言、c++資料型別;

bool是微軟定義的typedef int bool。與bool不同,它是乙個三值邏輯,true/false/error,返回值為》0的整數為true,0為false,-1為error。

6、執行效率

bool型別要比bool型別處理快一些。因為bool型別正好等於乙個機器能處理的最大字長。bool處理過程中需要一些轉換。 

7、其他

這兩種不同的布林型別可以在同乙個程式中共存,但在編寫cocoa**時要使用bool。

但是如果沒有嚴格要求的話,布林型別和int型別是通用的。非0值的int型別可以轉為布林型別的true,稱為隱式轉換。0的int值則可以轉為布林型別的false。

訊息排程 @selector引數列表

@selector(...) 語句是objective-c 中用來指定某個特定方法。關鍵在於,絕不能忘記函式後面的冒號!冒號告訴 objective-c:「去找乙個名為***的方法,這個方法有且只有乙個引數」。如果忘記寫冒號,編譯器還是可以通過的,但是程式一執行就會發生崩潰。在 debugger console 視窗中,你會看到這樣的錯誤日誌:「unrecoginized  selector sent to instance...」。

@selector(...) 中的冒號個數一定要與所指定的方法引數個數相同。例如:

- (void) example:(cctime)delta sender:(id)sender flag:(bool)abool

那麼,對應的@selector語句就應該是:

@selector(example:sender:flag:);

->運算是間接定址:

比.運算的定址速度更快,而且你用多指標的話會發現指標用->這種呼叫方式更簡潔,幾乎沒人會使用p[0].k或*p.k這樣的呼叫方式。

對於以下變數定義,以下表示式正確的是:()

struct nodep[4];

a.p->k=2 b.p[0].s="abc" c.p[0]->k=2 d.p->s='a'

答案選a。->是指標特用的,p->k表示p物件中的k變數

b錯,只有在宣告字元陣列的時候才能將乙個字串賦給陣列。如:char a[5] = "abc";而

char a[5]; a="abc";這種寫法是錯的。

c錯,p[0]不是指標,不能用->。

d錯,不能將乙個 const char 型別的字元 'a' 賦給 陣列 s。雙引號就對了

我這樣理解:

p指代的是位址 即p[0]的位址,所以p->k=2 等價於p[0].k=2;->是指標特用的

^異或運算子,位值相同為0,不同為1.

a1 = 0x01;    //0000 0001

a2 = 0x00;    //0000 0000

a3 = 0x03;    //0000 0011

a4 = 0x02;    //0000 0010

b1 = a1 ^ a2; //0000 0001

b2 = a1 ^ a3; //0000 0010

b3 = a1 ^ a4; //0000 0011

完整的式子是這樣的x^=y,書上寫的x^=y,等價於x=x^y,是怎麼算的??

^=   是個異或並賦值的操作符。屬於位操作符。二者不同返回1,相同返回 0;

意思是   x與y異或的結果存入 x。

假如 x的二進位制是 00000000 00000000 00000000 11111111; 或者更長

y的二進位制是  00000000 00000000 11111111 00001111;

則 x^=y;之後  x 的二進位制是 00000000 00000000 11111111 11110000;

c語言中的\a怎麼用?

#include

int main()

">>="在c語言什麼意思?

比如a>>=2,等同於a=a>>2,是指a右移兩位,這裡的右移指的是a的二進位制數形式的右移,相當於a縮小為原來的四分之一。>>是位運算中的右移符,後跟數字,表示右移的位數,右移後原數(二進位制形式)高位補零,與此相對的還有左移符<<,用法類似

iOS 各種報錯,各種error

是因為修改了標頭檔案,新增了空格啊什麼的 llvm low level virtual machine 低階編譯器 需要把note 後面提示要刪的指定的路徑檔案在finder中找到並完全刪除 如果是真的修改了system header 那麼解決的方法 1 還原 2 重灌xcode 關於xib連線的三...

IOS各種動畫

1。html view plain copy uibezierpath movepath uibezierpath bezierpath movepath movetopoint center movepath addquadcurvetopoint topos controlpoint cgpoi...

ios 繪製線框 iOS 各種邊框

uiview view uiview alloc initwithframe cgrectmake 0,0,100,100 view.center self.view.center self.view addsubview view view.backgroundcolor uicolor gray...