Objective-C知識總結(1),objective-c知識總結

來源:互聯網
上載者:User

Objective-C知識總結(1),objective-c知識總結

Objective-C簡稱OC,是一款可以開發Mac OS X平台和iOS平台應用程式的開發語言,目前最新的swift語言也可以開發以上兩平台的應用。

OC是面對對象的語言(OC面對對象語言特性請看之前的部落格--->也可以點我!<---),在OC代碼可以混入C語言代碼,甚至是C++代碼,也可以和swift進行混編。

好了,簡介就說這麼多>_<

先來個小問題:為什麼OC要使用import引入標頭檔,import和include的區別?

include 和 import 都是引入標頭檔

import引入的標頭檔,可以防止重複包含

include它是使用預先處理指令防止重複包含,如果沒有寫預先處理指令,則無法防止重複包含問題

還記得怎麼使用預先處理指令防止重複包含嘛

#ifndef Zhy#define Zhy// 函數的聲明void test(); #endif

使用NSLog輸出內建換行

NSLog(@"Hello World!");

OC中相對C語言多了一個BOOL類型用來儲存邏輯值,YES(真 1)   NO(假  0)

OC中的異常捕捉機制

   @try {            // 有可能會出錯的代碼            <#Code that can potentially throw an exception#>        }        @catch (NSException *exception) {            // 錯誤的處理方法            <#Handle an exception thrown in the @try block#>             NSLog(@" %@ ",exception);  // 列印出錯誤的資訊        }        @finally {            // 無論是否有錯都會執行           <#Code that gets executed whether or not an exception is thrown#>        }

OC中類的建立以及在哪裡定義成員變數,類方法和對象方法的聲明和實現

// 人這個類的聲明@interface Person : NSObject{    // 成員變數    NSString *_name;    int _age;}// 對象方法的聲明- (void)duixiangfangfa;// 類方法的聲明+ (void)leifangfa;@end// 人這個類的實現@implementation Person// 對象方法的實現- (void)duixiangfangfa{    NSLog(@"這是對象方法的實現");}// 類方法的實現+ (void)leifangfa{    NSLog(@"這是類方法的實現");}@end

說一下建立對象的語句

Person *p = [Person new];

[Person new] 做了三件事情

小問題:申請的空間在記憶體的哪個區?

new 的時候申請的空間在記憶體的堆區(程式動態分配的記憶體空間)

執行個體變數儲存在堆區,指標p儲存在棧區,對象方法儲存在代碼區

堆區有一個_isa指標指向代碼區,當對象要調用方法時,首先找p對應的堆區的空間,然後找到 _isa指標,再找到_isa指向的代碼區的空間,然後到該空間中找 方法

 設計一個”學生“類

  1> 成員變數

  * 姓名

  * 生日

 1 #import <Foundation/Foundation.h> 2 // 日期的結構體 3 typedef struct { 4      5     // 年 6     int year; 7     // 月 8     int month; 9     // 日10     int day;11     12 }MyDate;13 14 // Student類的聲明15 @interface Student : NSObject16 {17     @public18   // 學生姓名19     NSString *_name;20     21   // 學生生日22     MyDate _birthday;  // 結構體變數23 }24 25 @end26 27 28 // Student類的實現29 @implementation Student30 31 @end32 33 34 int main(int argc, const char * argv[]) {35     @autoreleasepool {36         37         Student *stu = [Student new];38         stu->_name = @"阿衰";39         40         //第一種方法41         stu->_birthday =(MyDate){1983,12,12};42         //NSLog(@"%d,%d,%d",stu->_birthday.year,stu->_birthday.month,stu->_birthday.day);43         44         //第二種方法:定義一個結構體變數45         MyDate d1 = {1981,11,11};  //定義結構體變數的同時進行初始化46         stu->_birthday = d1;47         48         //第三種方法,逐個賦值49         stu->_birthday.year = 2014;50         stu->_birthday.month = 12;51         stu->_birthday.day = 11;52         53         NSLog(@"%d,%d,%d",stu->_birthday.year,stu->_birthday.month,stu->_birthday.day);54     }55     return 0;56 }

這裡主要說明的是調用結構體時的方法

NSString類的用法

NSString是OC中字串處理的類

NSString *s = @"zzzzzzzzzzzzzz "; NSString *s1 = [NSString stringWithFormat:@"%d",i];

NSString字串的長度

 NSString *s1 = @"zzz";        NSUInteger len = [s1 length];  // 3// 中文字元在NSString中也佔1個位元組

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.