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

首頁 > 學院 > 開發(fā)設計 > 正文

ios開發(fā)入門篇(二):Objective-C的簡單語法介紹

2019-11-14 19:53:36
字體:
來源:轉載
供稿:網友
一:面向對象的思想
  objective-c與C語言的編程思想不同,C語言是面向過程的編程,而objective-c則是面向對象的編程,所謂面向對象,我個人的理解,就是抽象、將具有一定共同點的實物抽象成一個個類,對其進行封裝,繼承,對實物本身進行操作。
 
二:Objective-C的歷史
        objective-c是以SmallTalk為基礎,建立在C語言之上,并兼容c與c++的一門編程語言。20世紀80年代早期由 Brad J.Cox設計,2007年蘋果公司發(fā)布了objective-c 2.0,并在iphone上開始使用objective-c進行開發(fā)。
 
三:Objective-C框架
         Objective-c編程中主要用到的框架是Cocoa,它是MacOS X中五大API之一,它由兩個不同的框架組成FoundationKit applicationKit。Foundation是最基本的框架,其中有很多經常用到的、面向數(shù)據(jù)的低級類和數(shù)據(jù)類型,如NSString,NSArray,NSDictionary和NSNumber。而iphone手機應用開發(fā)  則還會用到UIKitk框架,這會在以后介紹到。
四:Objective-C擴展名
      OC是C和SmallTalk的結合,它支持相同的C語言基本語法。與C一樣,文件分為頭文件和源文件,擴展名分別為.h和.m。                                   
            .h  頭文件    頭文件包涵類的定義、類型、函數(shù)以及常量的聲明等;
            .m  源文件    這個典型的擴展名用來定義源文件,可以同時包含C和Objective-C的代碼。
五:頭文件引入 #import
  在Objective-C里,包含頭文件有比#include更好的方法  #import。它的使用和#include相同,但是可以保證你的程序只包含相同的頭文件一次。
例如  引入UIKit框架
#import <UIKit/UIKit.h> 
 
 
六:標準輸出函數(shù)  NSLog()
      在Objective-C中用的打印函數(shù)是NSLog(), 當然也可以用PRintf(),但是NSLog()提供了一些特性,如時間戳,日期戳和自動加換行符等,用起來更方便,所以NSLog()用起來會更加的方便。例如:
NSLog(@"Hello world");
 
 七:類方法,實例方法
       Objective-c 的方法定義包含了方法類型,返回類型,一個或者多個關鍵詞,參數(shù)類型和參數(shù)名。而且Objective-c中方法有兩種類型:實例方法,類方法。實例方法前用“-”號表明,類方法用“+”表明,實例方法需要用類的實例對象調用,類方法則只能由類名調用  下面是類方法和實例方法的舉例:
 
-(void)setCC:(NSString*)c;  //實例方法+(void)setCC:(NSString*)c;//類方法
 
 
八.變量的屬性
      變量的屬性提供了比方法更方便的訪問方式。通過@property標識符來替代getter和setter方法。使用方法就是在類接口.h文件中用@property標識符,后面跟著變量的屬性,包括 copy, tetain, assign ,readonly , readwrite,nonatomic,然后是變量名   然后在實現(xiàn)文件.m中使用@synthesize 加變量名實現(xiàn)   格式如下
聲明property的語法為:
      @property (屬性1,屬性2) 類型 名字;
//.h
@property BOOL flag;@property (nonatomic) NSString
* name;
//.m
@synthesize flag,name;
各參數(shù)意義如下:
readwrite    產生setter/getter方法
readonly     只產生簡單的getter,沒有setter。
assign         默認類型,setter方法直接賦值,而不進行retain操作
retain         setter方法對參數(shù)進行release舊值,再retain新值。
copy           setter方法進行Copy操作,與retain一樣
nonatomic      禁止多線程,變量保護,提高性能
屬性的另一個好處就是,可以使用點"."語法來訪問            
 
九:對象初始化
     OC對象的初始化有兩種方法:一種是[類名 new], 第二種是[[類名 alloc]init]。這兩種方法是等價的,不過,通常的Cocoa慣例是使用alloc和init,而不使用new.一般情況下,Cocoa程序員只是在他們不具備足夠的水平來熟練使用alloc和init方法時,才將new作為輔助方法使用。
         [[類名alloc]init]有兩個動作。alloc是分配內存,是從操作系統(tǒng)獲得一塊內存并將其指定為存放對象的實例變量的位置。同時,alloc方法還將這塊內存區(qū)域全部初始化為0。與分配動作對應的是初始化。
    自定義初始化方法   格式如下:
-(id)init{       if(self = [super init]){     ////code  there         }
  return self;}

   使用self= [super init]的作用是使父類完成它們自己的初始化工作。這在以后會介紹。

十:選擇器selector
    選擇器只是一個方法名稱,它以OC運行時使用的特殊方式編碼,以快速執(zhí)行查詢。你可以使用@selector()預編譯指令指定選擇器,其中方法名位于圓括號中。如一個類中setCC:方法的選擇器是:@selector(setCC:)。待續(xù)...
  
 
 
 
            
 
                    
 
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 肥城市| 天柱县| 麻栗坡县| 盘锦市| 韶关市| 偏关县| 色达县| 灵石县| 边坝县| 滨州市| 柳州市| 乐清市| 青田县| 博乐市| 达日县| 屏东市| 高雄市| 方正县| 会同县| 锡林浩特市| 汪清县| 乐都县| 淄博市| 阿鲁科尔沁旗| 积石山| 龙陵县| 苏尼特左旗| 宜君县| 新安县| 若尔盖县| 望都县| 怀远县| 聊城市| 渝中区| 清镇市| 长岭县| 阿瓦提县| 嘉鱼县| 罗城| 石景山区| 珠海市|