選取器,jquery選取器

來源:互聯網
上載者:User

選取器,jquery選取器

==========================

選取器

==========================

【認識選取器】

SEL

1.選取器(SEL)是一個變數類型。

2.選取器用來裝成員訊息(成員方法)

 

people* manInBlack = [[people alloc]init];

 // SEL 是一個選取器類型,好比int a,int 是一個整型

// 建立了一個選取器sel,sel裝了manInBlack中的printName方法

SEL sel = @selector(printName);

 // 執資料列選取器

[manInBlack performSelector:sel];

 

 

// 執行一個帶參數的選取器方法

// 多了一個冒號

SEL sel1 = @selector(printName:);

[manInBlack performSelector: sel1 withObject: @"我是黑衣人,我會隱藏"];

 

// [manInBlack printName: @"我長大了" withAge: @"25歲"];

  

// 建立一個帶2個參數的選取器

SEL sel2 = @selector(printName:withAge:);

// 執行一個帶2個參數的選取器

[manInBlack performSelector: sel2 withObject: @"我長大了" withObject: @"5歲"];

//【注】選取器方法,最多帶2個參數

 

二.選取器的作用

1.選取器支援ios開發,事件的相應機制。

2.選取器可用於方法的回調(代理)

3.選取器可以另一個方法實現多個功能,實現代碼重用。

 

// 編譯時間確定調用哪個方法

SEL sel = @selector(test1);

 

// NSSelectorFromString 可以在運行時確定調用哪個方法

NSString* selectorStr = [NSString stringWithFormat:@"test%d",i];

// NSSelectorFromString 可以把字串轉成SEL方法

// NSSelectorFromString 是一個系統方法,可以把nsstring轉成SEL類型

SEL sel2 = NSSelectorFromString(selectorStr);

 

三.isKindofClass

 【注】

1.用SEL聲明的變數來裝成員方法

2.用Class聲明的變數來裝類型

 

//把test這個方法裝入sel這個變數

SEL sel = @selector(test);

        

//把 book這個類型裝入las這個變數中

//Class這個是用來裝類的類型的一個類型

Class las  = [book class];

 NSArray* array = @[@"one", @"tow", mybook, @"jack"];

//[問]如何從array取出book這個類型的變數

for(id object in array)

{

//isKindOfClass 用來判斷object 這個對象是否是book 類型的

//isKindOfClass 用於判斷對象屬於哪個類

if ([object  isKindOfClass: las]) {

NSLog(@"%@", object);

}

}

 

【動態建立類】

【注】用NSClassFromString可以實現動態建立,取出的這個類必須是當前工程中的類

//把一個NSString類型裝入Class所定義的變數

// 告訴編譯器在當前工程中去找名字是book.h book.m的類然後轉換成一個類型。轉換成一個book類型

//  Class mybook = NSClassFromString(@"book");

//   book * myFirstBook = [[mybook alloc]init];

        

        NSMutableArray* tmpArr = [[NSMutableArray alloc]init];

        NSArray* classNameArray = @[@"surperMan", @"food", @"book"];

        for (  int i = 0; i < 3 ; i++ ) {

            NSString* C_name = classNameArray[i];

            // NSClassFromString 把字串所對應的類給取出來

            // 前提條件是:取出的這個類必須是當前工程中的類,如果當前工程中不存在這個類

            // 則返回nil

            // 用NSClassFromString可以實現動態建立

            Class myClass = NSClassFromString(C_name);

            id obj = [[myClass alloc]init];

            [tmpArr addObject:obj];

        }

        

動態建立類好處非常多

1.大大簡化了代碼量

2.使程式功能更加強大

3.節約程式的記憶體

 

相關文章

聯繫我們

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