国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Objective-C知識總結(1)

2019-11-14 18:38:40
字體:
來源:轉載
供稿:網友

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] 做了三件事情

  1. 申請內存空間

  2. 給實例變量初始化

  3. 返回空間的首地址

小問題:申請的空間在內存的哪個區?

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個字節

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄢陵县| 怀宁县| 双鸭山市| 油尖旺区| 河南省| 平凉市| 永川市| 桐梓县| 开原市| 万山特区| 永顺县| 鄂托克前旗| 吉木萨尔县| 鄄城县| 镇坪县| 政和县| 潼南县| 浮梁县| 梁平县| 张家港市| 黎城县| 建始县| 东方市| 阿克陶县| 侯马市| 宁河县| 富宁县| 秦皇岛市| 剑川县| 庄河市| 长泰县| 正蓝旗| 嵊泗县| 崇左市| 隆化县| 宜兰市| 芦溪县| 酒泉市| 博客| 祁阳县| 新疆|