自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone學習筆記 Runtime初探初學者必看

移動開發(fā) iOS
本文介紹的iPhone學習筆記 Runtime初探初學者必看,詳細的介紹了Runtime的狀態(tài),我們來看詳細內容。

iPhone學習筆記 Runtime初探初學者必看 是本文要介紹的內容,runtime通常我們翻譯成運行時,其實就是程序運行的時候才加載執(zhí)行。

程序分為幾個狀態(tài),編輯時-> 編譯時(這時候就會到程序中檢查是否有語法錯誤等相關的錯誤)-> 靜態(tài)時-> 運行時

比如有些錯誤在編譯的時候是不會出現(xiàn)的,就是程序在語法上沒有問題。但在運行時,因為缺少資源等因素可能出現(xiàn)運行時錯誤。叫做runtime   error!

比如我們之前我們了解的

C運行時::C run-time library里面含有初始化代碼,還有錯誤處理代碼(例如divide by zero處理)。你寫的程序可以沒有math庫,程序照樣運行,只是不能處理復雜的數(shù)學運算,

不過如果沒有了C run-time庫,main()就不會被調用,exit()也不能被響應。因為C run-time library包含了C程序運行的最基本和最常用的函數(shù)。

所以每一次在文件中你要使用runtime的方法的時候都要確認是否已經(jīng) #import <objc/runtime.h>

(存在位置   /usr/include/objc/.)

要不會提示找不到方法

這樣比如你使用runtime的objc_msgsend()的方法的時候它就會編譯通過

那這個runtime的具體的用處是怎樣的

如下

比如你在低版本的sdk(2.x)編譯的程序,然后要屏蔽掉3.x以上的復制黏貼的功能,要是你直接調用方法比如setEnableCop()

這樣你在2.xSDK編譯的時候就會報錯,找不到所謂的方法,因為這個方法是在3.x以上的版本才會提供,在2.x根本找不到,所以方法我們不能直接的調用。

又因為iphone中的方法調用都是通過消息的形式來傳遞的,所以我們就可以跳過編譯的步驟,在程序runtime的時候在去判斷時候有存在這個方法,要是有我們就執(zhí)行屏蔽

代碼實例:

  1. -(BOOL)canPerformAction:(SEL)action withSender:(id)sender  
  2. {  
  3.     id menu = objc_msgSend(NSClassFromString(@"UIMenuController"),NSSelectorFromString(@"sharedMenuController"));
  4. //或者方法調用respondsToSelector來判斷是否有存在setMenuVisible的方法  
  5.     if (menu)  
  6.     {  
  7.         objc_msgSend(menu,NSSelectorFromString(@"setMenuVisible:"),NO);  
  8.     }  
  9.     return NO;  

小結:iPhone學習筆記 Runtime初探初學者必看的內容介紹完了,希望本文對你有所幫助。以上通過自己摸索,總結的概念,如果不對或不妥的地方請留言,共同學習!

責任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關推薦

2011-08-10 16:44:56

iPhone代理設計模式

2011-09-16 09:38:19

Emacs

2011-08-24 17:05:01

Lua

2011-07-26 10:42:00

Cocoa Cocoa2d 游戲

2011-09-08 10:38:37

Widget

2011-06-17 15:19:28

Qt

2011-06-17 15:25:18

Qt

2011-06-17 15:44:25

Qt

2013-04-23 10:51:15

Linux壓縮

2011-06-17 15:37:42

Qt

2011-06-17 14:54:31

Qt

2011-06-17 14:41:56

Qt

2011-07-27 10:02:12

iPhone Framework

2011-06-17 14:29:55

Qt

2011-06-17 14:12:32

Qt

2011-06-17 15:06:14

Qt

2011-06-17 15:32:28

Qt

2009-11-17 15:33:26

PHP數(shù)組元素

2009-10-22 16:46:03

VB.NET初步知識

2011-06-27 14:56:46

Qt Designer
點贊
收藏

51CTO技術棧公眾號