• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • UIKit框架之NSObject

    首先學習NSObject 


    //
    //  ViewController.m
    //  localization
    //
    //  Created by City--Online on 15/5/15.
    //  Copyright (c) 2015年 XQB. All rights reserved.
    //
     
    #import "ViewController.h"
     
    @interface ViewController ()
     
    @end
     
    @implementation ViewController
     
    - (void)viewDidLoad {
        [super viewDidLoad];
        //NSObject內包含 alloc、init方法
        NSObject *obj=[[NSObject alloc]init];
        //父類
        NSLog(@"superClass: %@",[obj superclass]);
        //當前類
        NSLog(@"Class: %@",[obj class]);
        //copy
        NSLog(@"copy: %@",[NSObject copy]);
        //hash
        NSLog(@"hash:%ld",[obj hash]);
        //description
        NSLog(@"description: %@",[obj description]);
        //debugDescription
        NSLog(@"debugDescription: %@",[obj debugDescription]);
    //    - (id)performSelector:(SEL)aSelector;
    //    - (id)performSelector:(SEL)aSelector withObject:(id)object;
    //    - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
        [self performSelector:@selector(test)];
        //isProxy
        BOOL isProxy=[obj isProxy];
        NSLog(@"isProxy: %d",isProxy);
         
    //    - (BOOL)isKindOfClass:(Class)aClass;
    //    - (BOOL)isMemberOfClass:(Class)aClass;
    //    - (BOOL)conformsToProtocol:(Protocol *)aProtocol;
    //    - (BOOL)respondsToSelector:(SEL)aSelector;
         
        //來確定一個對象是否是一個類的成員,或者是派生自該類的成員
        BOOL isKindOfClass=[obj isKindOfClass:[NSObject class]];
        NSLog(@"isKindOfClass:%d",isKindOfClass);
         
        //只能確定一個對象是否是當前類的成員
        BOOL isMemberOfClass=[obj isMemberOfClass:[NSObject class]];
        NSLog(@"isMemberOfClass:%d",isMemberOfClass);
         
        //是用來檢查對象是否實現了指定協議類的方法
        BOOL IsConformsToProtocol=[obj conformsToProtocol:@protocol(UIApplicationDelegate)];
        NSLog(@"IsConformsToProtocol: %d",IsConformsToProtocol);
         
        //用來判斷是否有以某個名字命名的方法(被封裝在一個selector的對象里傳遞)
        BOOL isRespondsToSelector=[obj respondsToSelector:@selector(hash)];
        NSLog(@"isRespondsToSelector:%d",isRespondsToSelector);
         
        // selector 用來判斷實例是否有以某個名字命名的方法. 和上面一個不同之處在于, 前面這個方法可以用在實例和類上,而此方法只能用在類上
        BOOL isInstancesRespondToSelector=[NSObject instancesRespondToSelector:@selector(hash)];
        NSLog(@"isInstancesRespondToSelector:%d",isInstancesRespondToSelector);
         
        
    }
    -(void)test
    {
        NSLog(@"test");
    }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
     
    @end





    版權聲明:本文為weixin_34306593原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_34306593/article/details/90658823

    智能推薦

    Runtime之NSObject結構

    簡介 OC是一門面向對象的語言,而對于面向對象語言來說一切皆對象。相信每個iOS開發者都很清楚在OC中NSObject是絕大多數對象的父類。OC是一門動態語言,而動態的實現則是離不開Runtime。那么OC中的對象在Runtime中又是以一種什么樣的形態出現的呢?本篇文章我們來詳細介紹OC對象在Runtime中的結構。 NSObject 我們先來看下在Runtime中NSObject的結構 從代碼...

    Swift — UIKit 之(5)—— TableViews

    文章目錄 0. 本篇重點 1. Table Views 2. 新建工程Tabbed App 3. 準備主界面 3.1 刪除 Second View 3.2 添加一個 TableViewController,并關聯到 TabBar 3.3 再加一個 TableViewController,并關聯到 TabBar,命名為“自定義Cell” 4. 第一個頁面“初步&r...

    SwiftUI封裝UIKit之UIDatePicker

    本文價值與收獲 看完本文后,您將能夠作出下面的界面 [email protected] 看完本文您將掌握的技能 UIDatePicker基礎使用 掌握SwiftUI使用UIDatePicker方法 代碼 推薦 基礎文章推薦 《SwiftUI是什么,聽聽大牛們如何說》 經典教程推薦 onevcat 大神的《SwiftUI 與 Combine 編程》 更新近百篇SwiftUI教程《...

    UIKit框架(8)屏幕適配(二)

    AutoLayout介紹 AutoLayout的功能要比AutoResizing強大的多。      當對一個UIView對象使用了AutoLayout布局后,意味著放棄了通過對象的frame進行修改視圖的位置、尺寸。      AutoLayout使約束條件,通過自動布局引擎,計算view對象的f...

    Swift — UIKit 之(4)—— TabBar|ToolBar|NavigationBar

    文章目錄 0. 本篇主要內容 1. TabBar [0] 長啥樣 [1] 建立項目 [2] 添加一個 TabBarController [3] 添加一個 NavigationController 2. ToolBar [4] 在TabBar的第一個界面(櫻桃)添加一個ToolBar [5] 在ToolBar下面添加一個View并拉滿 [6] 為該界面綁定一個控制類 [7] 綁定事件 [8] 編寫代...

    猜你喜歡

    UIKit框架(11)導航控制器UINavigationController

    介紹多控制器管理中非常重要的一個控制器UINavigationController 它負責管理多個控制器,能夠輕松完成控制器間的切換 如:iOS系統上的設置      父類是UIViewController,但其功能并非是管理view,而是管理多個控制器 控制器棧式管理:       當切換時,將一個控制器入棧,當返回...

    UIKit框架-自定義視圖-分段控制器

    自定義分段控制器 實現簡單點擊事件 效果圖 1.創建工程、創建UIView子類YYJTopView; 2.YYJTopView.h文件聲明一個數組用于接受內容; 3.YYJTopView.m文件實現數組seter方法,常見標題按鈕 4.實現按鈕點擊方法 這里按鈕的狀態不用UIControlStateSelected而用UIControlStateDisabled,是因為當按鈕處于selected狀...

    uikit框架開發前期配置及定制主題方法。

    要使用npm命令需要先安裝nodejs。 安裝方法網上有很多,在此就不一一例舉了。 1. 安裝Gulp 首先需要在全局范圍安裝gulp 用git下載Uikit。 這需要安裝git,進http://github.com/uikit/uikit直接下載后解壓就可以。 下載之后會自動生成uikit文件夾。 而后進入uikit目錄 2. 安裝node依賴的模塊。 執行npm install安裝node依賴...

    Swift — UIKit 之(1)—— 基本組件總覽

    參考資料:Apple官方KeyNote文件 文章目錄 1. 常見的系統視圖 2. 標簽(UILabel) 3. 圖像視圖(UIImageView) 4. 文本視圖(UITextView) 5. 滾動視圖(UIScrollView) 6. 表格視圖(UITableView) 7. 工具欄(UIToolBar) 8. 導航欄(UINavigationBar) 9. 標簽欄(UITabBarContro...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    精品国产乱码久久久久久蜜桃不卡