1. 程式人生 > >【Object-c基礎】預定義,條件編譯,陣列

【Object-c基礎】預定義,條件編譯,陣列

1.     預定義:#define 在object-c中,跟C語言一樣都是採用#define才使用,但末尾是沒有分號的; 例子:

#define PI 3.14

在之後即可引用,這點在iphone開發中一定每個組建的tag非常好用,並且可以集合放一個定義檔案中。 2.     條件編譯:#ifdef,#end,#elseif #ifdef,#else,#endif如我們常識認為的那樣,程式會根據判斷條件處理或者忽略某一個程式段。 例子: #ifdef MAC_OS_X#  define DATADIR “/uxnl/data”#else#  define DATADIR “\usr\data”
#endif 3.     陣列 在object-c中,C語言的陣列格式初始化和引用都能夠用,但在object-c中不提倡使用。 (1)不可變陣列:NSArray 初始化:  NSArray*array=[[NSArray alloc] init]; 相同的初始化方法還有: initWithArray; initWithContentsOfFile; initWithContentsOfURL; initWithObjects; 同樣還可以通過如下方法建立一個數組: arrayWithArray; arrayWithContentsOfFile; arrayWithContentsOfURL; arrayWithObject; arrayWithObjects; 其他詳細的可以參考IOS開發者文件。 (2)
可變陣列:NSMutableArray NSMutableArray是在開發中最常用的陣列,常用如下宣告: 初始化: NSMutableArray *mutableArray =[[NSMutableArray alloc] init]; 還有: arrayWithArray:array; arrayWithObjects:; arrayWithCapacity; initWithCapacity; 另外還有增加元素的刪除元素的方法,如下: addObject: addObjectFromArray: insertObject:atIndex: removeObject: removeObjectAtIndex: 在很多語言如 java , ruby , python中都有將字串切分成陣列或者將陣列元素以某個間隔字串間隔形成新的陣列。  其實NSArray也提供了這樣的功能。  使用-componentsSeparatedByString:
來切分NSArray。 如:  引用 NSString*string=@”one:two:three”;NSArray*aArray =[string componentsSeparatedByString:@":"]; 用-componentsJoinedByString:來合併NSArray中的各個元素並建立一個新的字串,如: 

string=[aArray componentsJoinedByString:@","];

這樣,上面的陣列就中的各個元素就以”,”分割形成一個字串 具體的可以參照IOS開發文件 (3)字典:NSDictionary  初始化的方法有: NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys: @"number1",@"1",@"number2",@"2",@"number3",@"3",nil]; 同樣也有多種相似的初始化方法,但開發中最常用的是:   + (id)dictionaryWithObjects:(NSArray *)objects forKeys:(NSArray *)keys   這個可以根據鍵值對對相同的鍵值進行配對,對儲存成對的資料非常管用。   相同的字典也有可變字典:NSMutableArray.這個屬性的具體情況類似NSMutableArray,具體可以檢視IOS開發文件。

相關推薦

Object-c基礎定義條件編譯陣列

1.     預定義:#define 在object-c中,跟C語言一樣都是採用#define才使用,但末尾是沒有分號的; 例子: #define PI 3.14 在之後即可引用,這點在iphone開發中一定每個組建的tag非常好用,並且可以集合放一個定義檔案中。 2.     條件編譯:#ifdef,

OC複合題定義一個學生類需要有姓名年齡考試成績三個成員屬性建立5個物件屬性可以任意值。(Objective-C

題目: 定義一個學生類,需要有姓名,年齡,考試成績三個成員屬性,建立5個物件,屬性可以任意值。(Objective-C) 1)    不使用@property,手動編寫他們的訪問器方法(getter和setter),注意記憶體管理(手動管理記憶體) 2)    增加一個便利

java學習記錄7.定義一個介面ArearInterface其中包含一個方法計算面積三角形、矩形、圓形的面積

* 定義一個介面ArearInterface,其中包含一個方法,計算面積 * 定義三個類:三角形、矩形、圓形,分別實現ArearInterface中的方法 * 定義一個主類,將三角形和圓形的面積顯示在螢幕上ArearInterface 介面public interface A

C語言的處理之"條件編譯"

C語言的預處理主要有三個方面的內容: 巨集定義 檔案包含 條件編譯     預處理命令以符號"#"開頭。     採用條件編譯,可以減少被編譯的語句,從而減少目標的長度。當條件編譯段比較多時,目標程式長度可以大大減少。 條件編譯主要包括: #if         

c語言學習--巨集定義條件編譯

1. 防止一個頭檔案被重複包含  #ifndef COMDEF_H  #define COMDEF_H  //標頭檔案內容  #endif  2. 重新定義一些型別,防止由於各種平臺和編譯器的不同,而產生的型別位元組數差異,方便移

C基礎#define巨集定義中的###@#\ 這些符號的神奇用法

C/C++ 巨集命令的神奇用法。 先看下面三條語句: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x 1. ## 連線操作符 ##表示連線(token pa

編程基礎C語言常見宏定義

ifd 轉換成 erro get 程序 運算 efi 宏定義 當前 我們在使用C語言編寫程序的時候,常常會使用到宏定義以及宏編譯指令,有的可能比較常用,有的可能並不是很常用,是不是所有的C語言宏定義以及宏指令你都清楚呢? 指令 用途詳細介紹 # 空指令,無任何效果 #i

SQL server基礎SQL視圖加密永久隱藏視圖定義的文本

選擇 creat reat 右擊 con with roc ron div SQL可以對視圖進行加密。也就是,可永久隱藏視圖定義的文本。 註意 此操作不可逆。加密視圖後,無法再修改它,因為無法再看到視圖定義。如果需要修改加密視圖,則必須刪除它並重新創建另一個視圖。 示

c#基礎int 轉換 stringstring 轉換 int

方法 res data int 是否 tryparse php convert out 1、int 轉換 string方法:toString() 或者 Convert.toString()舉例: [code]phpcode://toString() int a =1; st

C#基礎輸入一個字元判定它是什麼型別的字元(大寫字母小寫字母數字或者其它字元)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _02_判斷使用者輸入字元型別 { c

C/C++基礎11_使用者自定義資料型別

1. 結構體型別1.1 結構體型別定義的一般形式       在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型;學號可為整型或字元型;年齡應為整型;性別應為字元型;成績可為整型或實型。顯然不能用一個數組來存放這一組資料。因為陣列中各元素的型別

劍指offer左旋轉字符串C+實現

ews 試用 name DC http ref tst solution otto 原創博文,轉載請註明出處! 本題牛客網地址 本題代碼的github地址 本系列文章的索引地址 # 題目 # 思路 先局部翻轉,後整體翻轉。舉例:abcdefg先局部翻轉為bag

1、C++基礎簡介

void指針 通用 if...else 重載 全局變量 但是 區別 模板庫 stl C++ 簡介 C++ 是一種靜態類型的、編譯式的、通用的、大小寫敏感的、不規則的編程語言,支持過程化編程、面向對象編程和泛型編程。 C++ 被認為是一種中級語言,它綜合了高級語言和低級語言

23、C++基礎復制構造函數

amp sna c++基礎 cout span 另一個 include sin str 拷貝構造函數 拷貝構造函數是一種特殊的構造函數,它在創建對象時,是使用同一類中之前創建的對象來初始化新創建的對象。拷貝構造函數通常用於: 通過使用另一個同類型的對象來初始化新創建的對

28、C++基礎線程同步

有一個 handles 返回 由於 離開 hand 應用 數加 out 線程同步的方法主要有四種(《操作系統教程》一書):   1、臨界區:通過對多線程的串行化來訪問公共資源或一段代碼,速度快,適合控制數據訪問。      2、互斥量:為協調一起對一個共享資源的單獨訪問而設

2018.10.11 CC++基礎C Preprocessor的功能及缺陷(草稿)

repr 繼承 logs 作用域 ces 變量 找到 可變參數 體系 一、前言及參考資料 C Preprocessor即所謂的C預處理器,C++也繼承了C的預處理程序,但在C++語言的設計與演化一書中,C++的設計者Bjarne Strustrup提及他從未喜歡過C預處理器

c++基礎從json檔案提取資料

前言 標註資料匯出檔案是json格式的,也就是python的dict格式,需要讀取標註結果,可以使用c++或者python,本文使用c++實現的。 JsonCpp簡介 JsonCpp是一種輕量級的資料交換格式,是個跨平臺的開源庫,可以從github和sourceforge上下載原始碼。 JsonCpp

C#作業學生成績新增並排序錯誤則丟擲異常

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Cons

c# 多網絡卡 由網路介面卡名獲取網絡卡資訊IP

c# 多網絡卡 由【網路介面卡名】獲取網絡卡資訊,IP 多網絡卡電腦中,網路介面卡的名字 多樣化! 專案中需要,根據網路介面卡 名字 獲取 單個網絡卡的IP: using System.Net.NetworkInformation;

類和物件求1+2+3+...+n要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C

題目描述: 求1+2+3+...+n,要求不能使用乘除法(數學公式)、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C). 分析:這道題雖然常用的方式都給禁掉了,但是可以使用我們c++學過的類和物件,通過使用類和靜態來完成。常規情況下,從1+到n,