首先学习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

UIKit框架之NSObject的更多相关文章

  1. 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架

    Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...

  2. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  3. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  4. iOS学习32之UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  5. 基础框架Fundation和UIkit框架的定义和使用

    Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...

  6. iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

    转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...

  7. iOS开发UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  8. UIKit 框架之UIView二

    下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...

  9. UIKit 框架之Bar、Controller

    UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...

随机推荐

  1. G 最水的一道

    G - Here Be Dragons The Triwizard Tournament's third task is to negotiate a corridor of many segment ...

  2. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let’s Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  3. [翻译] ASP.NET WebAPI 中的异常处理

    原文链接:https://docs.microsoft.com/en-us/aspnet/web-api/overview/error-handling/exception-handling 本文介绍 ...

  4. js css等静态文件版本控制,一处配置多处更新.net版【原创】

    日常web开发中,我们修改了js.css等静态资源文件后,如果文件名不变的话,客户端浏览并不会及时获取最新的资源文件,这就很尴尬了 怎么办呢? 1.小白:让客户清除缓存?,No ,  不靠谱 2.初级 ...

  5. C# DataGridView中单元格Cell改变事件

    DataGridView控件中的各种事件都无法直接响应Cell中内容的变化,包括KeyPress等事件,可以采用下面方法 private void dataGridViewBarcode_Editin ...

  6. .NET MVC 学习笔记(三)— MVC 数据显示

    . NET MVC 学习笔记(三)—— MVC 数据显示 在目前做的项目中,用的最多的数据展示控件就是table展示(说不是的请走开,不是一路人),以下详细阐述下table的使用方法. 先看效果: 上 ...

  7. ovs stp

    环路拓扑 组成拓扑结构的脚本 构成连通脚本 ip netns add ns1 ovs-vsctl add-br br1 ovs-vsctl add-port br1 tap1 -- set Inter ...

  8. 【BZOJ1049】 [HAOI2006]数字序列

    BZOJ1049 [HAOI2006]数字序列 dp好题? 第一问 第一问我会做!令\(b_i=a_i-i\),求一个最长不下降子序列. \(n-ans\)就是最终的答案. 第二问 好难啊.不会.挖坑 ...

  9. <转>(笔记)正则表达式的几种引擎

    这篇主要是基于<精通正则表达式>的一篇读书笔记,因为书还没看完,可能以后还会有相关的笔记.(工作以后看书的效率真的很低啊……) 正则引擎主要可以分为基本不同的两大类:一种是DFA(确定性有 ...

  10. HDU - 2604 Queuing(递推式+矩阵快速幂)

    Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...