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
智能推薦
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...