Object-C 雜亂筆記

來源:互聯網
上載者:User

標籤:style   class   blog   java   color   com   

開發環境

自己寫Demo的話,在[MAC OS X]-->[Application]-->[Command Line Tool](命令列模板 ) 設定檔案名稱的時候 Type選擇Foundation系統庫即可

 

NSLog 輸出格式

    •    %@     對象
    •    %d, %i 整數
    •    %u     無符整形
    •    %f     浮點/雙字
    •    %x, %X 二進位整數
    •    %o     八進位整數
    •    %zu    size_t
    •    %p     指標
    •    %e     浮點/雙字 (科學計算)
    •    %g     浮點/雙字 
    •    %s     C 字串
    •    %.*s   Pascal字串
    •    %c     字元                          竟然只能輸出一個,若是多個的時候,選擇最後一個char做為輸出
    •    %C     unichar
    •    %lld   64位長整數(long long)
    •    %llu   無符64位長整數
    •    %Lf    64位雙字 

Note: 多個變數輸出的時候竟然需要寫多個%i,%d之類的(個人現在認知)

     

int r = 5;int p = 3;NSLog(@"the number is %i %i",p,r);
索引值編碼

定義: 一個用於間接訪問對象屬性的機制        (跟java中的反射貌似很像)

                1 這個機制不需要調用存取方法和變數執行個體就可以訪問對象屬性

                2  預設的實現方法由NSObject(祖先),NSKeyValueCoding(一個非正式協議的類目錄)中被聲明

                3  支援帶有對象值的屬性,純數實值型別,結構,非對象參數和傳回型別會被識別並自動封裝/解鎖

使用:-valueForKey:  和 -setValue: forKey: 這兩個方法(兩個方法都看不明白的,看看方法的定義)

                1 以字串的形式向對象發送訊息

       2 不存在setter,getter方法時,將在內部尋找名為_key(一種屬性命名的方式,進階注釋有木有,一眼看穿有木有)或key的執行個體變數,可擷取到不存在getter方法的對象值,無需通過對象指標直接存取(我感覺很NB)

                3 -setValue: forKey:設定對象的值或者valueForKey來擷取對象的值,若對象的執行個體變數為基本類型(char,int,float,Bool.....)時,我們需要對資料進行封裝(比如IsNumber)

這裡是一個訪問私人變數代碼

//這裡Book類僅僅是定義一個私人的屬性//-----------------------------------------------#import "Book.h"@implementation Book:NSObject{ @private    NSString *_name;}@end//這是main.m程式//這裡故意把forkey中的參數寫為name,也能實現,可以看到一種訪問機制//---------------------------------------------------#import <Foundation/Foundation.h>#import "Book.h"int main(int argc, const char * argv[]){    @autoreleasepool {        Book *book = [[Book alloc]init];        [book setValue:@"nbbbbb" forKey:@"name"];        NSString *name = [book valueForKey:@"name"];        NSLog(@"%@",name);            }    return 0;}

  

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.