Time of Update: 2018-07-26
在前面, 我們知道了類的本質其實也是一個對象, 是Class類型, 那麼類的載入過程是如何的呢?? 其實類的載入過程非常簡單, 先載入父類然後再載入子類, 而且每一個類就只會載入一次, 下面讓我們來看看~ 例子: #import <Foundation/Foundation.h>@interface Person : NSObject+ (void)load;@end@implementation Person+ (void)load{ NSLog(@
Time of Update: 2018-07-26
Objective-C 屬性特性(assign , retain , copy , readonly , readwrite , atomic , nonatomic)
Time of Update: 2018-07-26
現在,我們將用Objective-C定義一個實際的類,並學習如何使用類的執行個體。 同樣,我們將先學習過程。因此,實際的程式範例可能不是特別實用,那些更加實際的內容將在稍後討論。 假設要編寫一個用於處理分數的程式,可能需要處理加、減、乘、除等運算。如果你還不知道什麼是類,那麼可以從一個簡單的程式開始,代碼如下: 代碼清單3-1 // 採用分數的簡單程式 #import <Foundation/Foundation.h>
Time of Update: 2018-07-26
什麼是多態。
Time of Update: 2018-07-26
OC中提供了除了使用alloc分配記憶體再使用init來初始化的兩段構造方法外,另外也提供了像C++和Java中的new的方式來建立對象,new整合了alloc和init的兩次調用,簡化了代碼。 //// main.m// 06_New//// Created by apple on 14-11-11.// Copyright (c) 2014年 cc. All rights reserved.//#import
Time of Update: 2018-07-26
第1條:瞭解Objective-C語言的起源 1、Objective-C的訊息結構
Time of Update: 2018-08-01
文章轉自 @implementation Son : Father- (id)init{ self = [super init]; if (self){ } return self;} 這是一個普通到初始化方法, 子類實現初始化前調用父類的init實現。基於這個初始化方法,我們從三個方面來對比self和super關鍵字。 self是什麼,super是什麼。 在動態方法中:self代表著”對象”; 在靜態方法中:self代表著”類”;
Time of Update: 2018-08-04
<span style="font-size:18px;">#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //字典 /* 字典 NSDictionnary//NSMutableDictionary
Time of Update: 2018-08-19
架構是由許多類,方法,函數以及文檔按照一定的規則群組織起來的集合,以便於程式員更方便、迅速的開發程式。Cocoa程式編寫主要用到兩個架構Foundation和ApplicationKit(UIKit). 其中Foundation架構主要定義了一些基礎類,供程式員使用,而ApplicationKit主要是一些使用者介面設計的類,用於Mac開發使用此類。Foundation架構中的所有類都繼承自NSObject。
Time of Update: 2018-08-19
在實際的項目開發中,二維數組也是常常用到的資料結構。OC中的二維數組也是通過一維數組來建立的,今天我們來詳解一下如何在OC中使用二維數組。 【使用NSArray初始化二維數組】 使用NSArray初始化的一維數組和二維數組都是不可變數組。 #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {
Time of Update: 2018-08-19
【基本概念】 1.索引值編碼是一個用於間接訪問對象屬性的機制,使用該機制不需要調用存取方法和變數執行個體就可訪問對象屬性。 2.索引值編碼方法在OC非正式協議(類目)NSKeyValueCoding中被聲明,預設的實現方法由NSObject提供。 3.索引值編碼支援帶有對象值的屬性,同時也支援純數實值型別和結構。非對象參數和傳回型別會被識別並自動封裝/解鎖。 【索引值訪問】 索引值編碼中的基本調用包括-valueForKey: 和
Time of Update: 2018-08-19
【基本概念】 索引值觀察是一種使對象擷取其他對象的特定屬性變化的通知機制。控制器層的綁定技術就是嚴重依賴索引值觀察獲得模型層和控制器層的變化通知的。對於不依賴控制器層類的應用程式,索引值觀察提供了一種簡化的方法來實現檢查器並更新使用者介面值。
Time of Update: 2018-08-19
同樣的,數組也有可變的形式,即NSMutableArray,現在我們來實現這些方法: (1)建立Person.h檔案,實現如下: #import <Cocoa/Cocoa.h>@interface Person : NSObject@property(nonatomic,strong) NSString *personName;- (instancetype)initWithPersonName: (NSString *
Time of Update: 2018-08-19
NSArray是Foundation架構中的不可變數組,我們來實現一下這些方法: #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { //OC的數組可以儲存不同類型的對象;OC的數組只能儲存物件; //但是記憶體空間還是連續的; NSArray *arr1
Time of Update: 2018-08-19
Block閉包是OC中比較進階的概念。我們通過簡單的代碼來理解一下: #import <UIKit/UIKit.h>#import "AppDelegate.h"//代碼塊的聲明;傳回值int,參數類型int、int;int (^max)(int,int);typedef void (^SayHello)();int main(int argc, char * argv[]) { //代碼塊的賦值; max = ^(int
Time of Update: 2018-08-19
我們知道OC可以和C進行混合編程,同樣的,C的字串和OC的字串也是非常的類似。在某些情況下,需要進行相互轉換。現在我們來實現一下: #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { char *str1 = "Hello";
Time of Update: 2018-08-19
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { ////////////////////////////////////////////////////////////////////// //判斷兩個字串是否相同; NSString *string1 = @"Hello World";
Time of Update: 2018-08-19
可變數組比普通的數組更加靈活。在OC中的實現如下: #import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) { NSMutableArray *arr = [[NSMutableArray alloc] init]; for (int i = 0; i < 100; i++) {
Time of Update: 2018-08-19
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { ////////////////////////// //讀取檔案; //1.本地檔案; 2.網路檔案; //路徑類 NSString *string11 = @"http://www.baidu.com";
Time of Update: 2018-08-19
#import <UIKit/UIKit.h>#import "AppDelegate.h"int main(int argc, char * argv[]) { //類似Java中的Map,即索引值對; NSDictionary *dict = @{@"name":@"zhangsan",@"age":@23}; //列印出整個字典; NSLog(@"%@",dict);