日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC-变量和数据类型

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC-变量和数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對象的初始化

Fraction *myFract=[[Fraction alloc] init];//初始化對象

[myFract setTo:1 over:3];//設置初始值

初始化對象和設置初始值的過程通常可以合并到一個方法中。

myArray=[[NSArray alloc] initWithArray:myOtherArray];

常見的編程習慣類中的所有初始化方法都以init開頭。

編寫初始化方法的策略:

通過復寫init方法達成目的;必須將父類init方法的執行結果賦值給self(因為初始化過程改變了對象在內存中的位置--意味著引用將要改變);如果有多個初始化方法,應把參數最多的初始化方法作為指定的初始化方法,其他的初始化方法調用指定的初始化方法,這樣可以把大部分初始化代碼集中到單個方法中。

-(Fraction *)initWith:(int)n over:(int)d {self=[super init];if (self) {[self setTo:n over:d];}return self; } 初始化方法示例

?為了符合初始化規則,應該重寫Fraction類的init方法,這一點尤其在作為子類時特別重要;所有的初始化方法都應返回id類型,這是編寫可能會被繼承的類初始化方法的一般規則,因為子類的對象并不等同于父類。

作用域

@protected  可被該類及任何子類中定義的方法直接訪問--接口部分定義的實例變量默認是這種作用域

@private  可被定義在該類的方法直接訪問,當時不能被子類中定義的方法直接訪問--實現部分定義的實例變量默認是這種作用域

@pubilc  可被該類中定義的方法訪問,也可被其他類或模塊中定義的方法直接訪問

@package  對于64位映像,可以在實現該類的映像中的任何地方訪問這個實例變量

全局變量

在程序的開始處(所有的方法、類定義和函數定義之外)編寫int gMoveNumber=0,那么gMoveNumber即為全局變量,而且是外部全局變量。

慣例,g作為全局變量的首字母

需要訪問別的文件中定義的全局變量,只需在聲明前加上關鍵字extern。

#import <Foundation/Foundation.h> #import "Foo.h"int gGlobalVar=5; int main(int argc, const char * argv[]) {@autoreleasepool {Foo *myFoo=[[Foo alloc] init];NSLog(@"%i",gGlobalVar);[myFoo setgGlobalVar:100];NSLog(@"%i",gGlobalVar);}return 0; } main方法 -(void) setgGlobalVar:(int) val {extern int gGlobalVar;gGlobalVar=val; } Foo類的setgGlobalVar方法

結果:5

   10

靜態變量

希望定義的全局變量只在特定的模塊(文件)中是全局的,除了特定類中的方法之外沒有其他方法需要訪問這個特定變量。則該變量需要定義為靜態變量。靜態變量定義如下:static int gGlobalVar=0

枚舉數據類型

enum flag{false,true}; enum direction{up,down,left=10,right}; enum {east,west,south,north} direction; 枚舉定義

?數據類型轉換

如果其中一個操作數是long double,另一個操作數被轉換為long double型,計算結果也是這種類型

如果其中一個操作數是double,另一個操作數被轉換為double型,計算結果也是這種類型

如果其中一個操作數是float,另一個操作數被轉換為float型,計算結果也是這種類型

如果其中一個操作數是Bool、char、short int、bit field或者枚舉數據類型,全部轉換為int型

如果其中一個操作數是long long int,另一個操作數被轉換為long long int型,計算結果也是這種類型

如果其中一個操作數是long int,另一個操作數被轉換為long int型,計算結果也是這種類型

到這一步,兩個都是int,計算結果也為int

但是涉及到unsigned操作數時,轉換規則更為復雜

位運算符(暫緩)

?

轉載于:https://www.cnblogs.com/Charles-lv/p/4669575.html

總結

以上是生活随笔為你收集整理的OC-变量和数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。