標籤:1.方法前的加減號Objective-C中是沒有public與private的概念的,即可以認為全部都是public。減號表示的是一個函數、方法、訊息的開始。加號則表示不需要建立一個類的執行個體,其他類就可以直接調用這個類中的函數(也可以說加號表示靜態成員函數)2.Objective-C語言#import引入標頭檔時,.h和.m有什麼區別?.h檔案是標頭檔,包含了類,類型、函數與常數的聲明;.m檔案是原始碼檔案;.mm
標籤:本次的主要內容是塊,對初學者來說,代碼中涉及到塊的內容確實很容易讓人疑惑。首先談一下塊的概念,塊(Block)是蘋果為 C、C++以及 OC 添加的一種特性,它包含了部分代碼,可以被當做是參數傳遞給函數,並且它的實質是 OC 中的對象,也就是我們完全可以把它放到集合中,比如我們可以定義 NSArray 或者 NSDictionary 的對象來放置一系列的塊,然後通過代碼來決定執行哪一個塊。塊還有一大特性,就是可以從相應的代碼塊中截取變數的值,就像閉包或者 lambda
標籤:介紹Objective-C將許多決策從便宜時期和連結時期延後到運行時期。只要可能,它都動態做很多事情。這意味著它不僅需要一個編譯器,還需要一個運行時系統來執行編譯好的代碼。對於Objective-C來說,這個運行時系統就好像一個作業系統,使objective-c能夠正常工作。本文探究NSObject類,以及Objective-C程式如何和運行時系統互動。通過閱讀本文,你應該理解Objective-C的運行時系統如何工作,以及如何利用它。儘管對於寫一個Cocoa程式而言,你可能並不需要理解本
標籤:1. Hello,
標籤:KVC的使用 1、KVC 全稱 key valued coding 索引值編碼反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性.JAVA,C#都有這個機制。ObjC也有,所以你根部不必進行任何操作就可以進行屬性的動態讀寫,就是KVC。KVC的操作方法由NSKeyValueCoding提供,而他是NSObject的類別,也就是說ObjC中幾乎所有的對象都支援KVC操作。 2、常用方法&
標籤://// Student.h// OOP//// Created by acgity on 16/5/16.// Copyright © 2016年 acgity. All rights reserved.//#import <Foundation/Foundation.h>typedef enum { male,female} SEX;@interface Student : NSObject{ @public NSString
標籤:第1章 啟程http://www.cnblogs.com/duxiuxing/p/5492219.html第2章 對C的擴充第3章 物件導向編程的基礎知識第4章 繼承第5章 複合第6章 源檔案組織第7章 深入瞭解Xcode第8章 Foundation Kit介紹第9章 記憶體管理第10章 對象初始化第11章 屬性第12章 類別第13章 協議第14章 代碼塊和並發性第15章 AppKit簡介第16章 UIKit簡介第17章 檔案載入與儲存第18章 健/值編碼第19章
標籤:在iOS的開發中使用的是Objective C語言,它是一種物件導向的語言介面和實現在Objective裡完成的檔案被稱為介面檔案,該類檔案的定義被稱為實現檔案。一個簡單的介面檔案MyClass.h將:1 @interace MyClass:NSObject{ 2 // 類變數聲明3 }4 // 類屬性聲明5 // 類方法和聲明6 @end執行MyClass.m檔案,如下所示1 @implementation MyClass2 // 類方法定義3 @end建立對象完成建立對象,如下所示
標籤: Objective-C的Block 標籤: iOSobjective-cOS XBlock2016-04-13
標籤:先說一下本文中會提到的內容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏變數:先舉一個例子,會用到上面這些宏: #define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s," \ __VA_ARGS__, __FILE__, __LINE__ ,__FUNCTION__); 此處的 #define 的作用是將 myprintf(
標籤:本節的內容主要是 OC 的語言基礎,對 OC 比較熟的可以不用看這一篇的內容了,基本也就是翻譯一下官方文檔。這一篇的主要內容就是關於 OC 的語言基礎,主要是針對值和集合而言。實際上 OC 中的值可以先分為兩類,一類是 C 語言提供的類型,一類是 OC 為我們提供的類型。C 語言提供的類型,就是 int, float, char 這些,而在 OC 中,我們則是用對象來表示一個值,所以主要類型是 NSInteger, NSUInteger 以及 CGFloat 這樣的形式。C
標籤:在Objective-C中,定義一個類,需要有兩部分: 第一是介面(interface),第二是實現(implementation)。 介面對應介面檔案,而實現對應了實現檔案。 介面檔案包含了類的聲明,成員變數(member variable)和方法(method)。 介面檔案通常是.h 實現檔案通常是.m檔案。 介面中所聲明的方法(method),需要在.m 檔案中,通過xcode 來實現這個方法(method)。今天查看apple
標籤: 在Objective-C中對象之間的拷貝分為淺拷貝和深拷貝。說白了,對非容器類的淺拷貝就是拷貝對象的地址,對象裡面存的內容仍然是一份,沒有新的記憶體被分配。對非容器類的深拷貝就是重寫分配一塊記憶體,然後把另一個對象的內容原封不動的給我拿過來。對容器類的深拷貝是對容器中的每個元素都進行拷貝,容器類的淺拷貝是對容器裡的內容不進行拷貝,兩個容器的地址是不同的,但容器裡的所裝的東西是一樣的,在一個容器中修改值,則另一個淺拷貝的容器中的值也會變化。所以對非容器類看對象是否為深
標籤:1. property基本使用 - - - 編譯器只要看到@property, 就會自動產生某一個屬性的getter/setter方法的聲明2. @synthesize@synthesize是一個編譯器指令, 它可以簡化我們getter/setter方法的實現什麼是實現: 在聲明後面寫上大括弧就代表著實現在@synthesize後面告訴編譯器, 需要實現哪個@property產生的聲明告訴@synthesize,
標籤:1. 記憶體管理堆和棧 棧 (作業系統) : 由作業系統自動分配釋放, 存放函數的參數值(形參),局部變數的值等. 其操作方式類似於資料結構中的棧 (先進後出)堆 (作業系統) : 一般由程式員分配釋放, 若程式員不釋放, 程式結束時可能由OS回收, 分配方式類似於鏈表只要是alloc init創造的, 都放在堆裡OC對象存放在堆裡,堆裡的資料系統不會自動釋放, 需要手動釋放非OC對象一般放在棧裡, 棧記憶體會被系統自動回收記憶體流失 - - - 如果一個OC對象,佔據了一塊記憶體,
標籤: 想提高下以後做的應用給客戶帶去的體驗,所以看了幾天OC的CAAnimation動畫類,也做了幾個小案例,下面講個別案例來做為本文的主要內容。一:繼承結構 上面中用得最多的類大概就是,CABaseAnimation和 CAKeyframeAnimation,這兩個類的最大區別就是對動畫的控制,CABaseAnimation
標籤:一、知識點1、介紹資料選擇控制項UIPickerView和日期選擇控制項UIDatePicker控制項 * UIPickerView的案例 * 點餐系統 * 城市選擇 * 國旗選擇 * UIDatePicker的案例 *
標籤:property可以被聲明的位置property可以在類的interface section和class extension以及protocol中被聲明 property的可見度Objective-C中的property實際上就是getter和setter方法。一個類的property能夠在外部被訪問,主要看該類的property聲明在外部能否可見。比如有一個類X,其.h和.m檔案如下://X.h#import
標籤:在Oc中,方法分為類方法和執行個體方法。+為類方法,這類方法是可以直接用類名來調用的。-為執行個體方法,必須使用類的執行個體才可以調用的。@interface people : NSObject-(void)eat;+(void)eat;@end@implementation people-(void)eat{ NSLog(@"我是被類的執行個體調用-方法");}+(void)eat{
標籤: 內容列表物件模型(結構定義,類對象、元類和執行個體對象的關係)訊息傳遞和轉寄機制runtime系統功能理解物件模型結構定義對象(Object): OC中基本構造單元 (building block),用於儲存和傳遞資料。能夠在objc.h的檔案裡尋找到對象結構的定義,例如以下所看到的即對象結構為Class類型的isa,而Class是