Time of Update: 2018-12-03
最近學習了一下objective-c,對於新手,這個裡面加的東西是不是很不習慣啊,是不是會對@property @synthesize這個指令感到比較奇怪呢?畢竟C裡面沒有這個“亂七八糟“的東西啊!!首先介紹一下這個指令@property吧 這個“亂七八糟“的東西呢其實是一個很好的東西,如果你用很C的規範去寫一個類時,你會不會要對這個類的成員進行寫入和讀取資料呢?答案是必然的,所以這時你就得寫一個-(void) setX(id ..) 和一個-(id) X
Time of Update: 2018-12-04
C++中的多態(兩種):編譯時間匹配:函數重載,依據成員函數的名字、形參類型、形參個數等不同來實現不同的函數調用匹配;運行時匹配:虛函數,具體就是通過將父類或抽象類別聲明時成員函式宣告為virtual,然後子類繼承並實現,應用時,通過將子類對象地址賦給其父類類型的指標(注,抽象類別不能執行個體化,即不能定義對象,但是可以定義指向該類類型的指標和引用),通過調用賦值後的父類指標指向的虛函數來達到調用不同子類對該虛函數的不同實現的目的。C++中實現運行時多態使用virtual.Obiective-C
Time of Update: 2018-12-04
1.第1章啟程本書除了介紹Objective-C語言,還會介紹蘋果公司為其提供的工具包Cocoa(針對OS X系統)和Cocoa
Time of Update: 2018-12-04
使用ARC能幫我們減輕不少記憶體管理方面的負擔,尤其是對用慣了Java的程式員來說。但是像我這種Java基礎本身就不牢固,做了兩年的iOS已經習慣手動管理記憶體的半吊子,使用ARC還是經常碰壁。最近碰到了CFObject和NSObject轉換的問題,由於ARC不能管理Core Foundation Object的生命週期,所以在Core
Time of Update: 2018-12-03
轉載:http://hi.baidu.com/delphi9527/blog/item/2f29650d1302f2306159f319.html 在實際工作中有些程式不可避免的需要使用數學函數進行計算,比如地圖程式的地理座標到地圖座標的變換。Objective-C做為ANSI C的擴充,使用C標準庫標頭檔<math.h>中定義的數學常量宏及數學函數來實現基本的數學計算操作,所以不必費神再在Cocoa
Time of Update: 2018-12-03
在ios應用中如果需要儲存大對象資料可以採用xml檔案或者屬性檔案方式,但由於採用的純文字方式保密性不夠,如將儲存資料封裝為自訂類的執行個體通過序列化的二進位方式進行儲存,這樣安全性會有所提高。另外後面文章將介紹一些RSA、MD5等演算法對儲存資料進行加密和解密。具有序列化能力的類必須實現NSCoding協議的兩個函數:-(void) encodeWithCoder:(NSCoder *)encoder;-(id) initWithCoder:(NSCoder
Time of Update: 2018-12-03
今天花了了一個下午的時間看完了《Objective-C開發範例代碼大全》,這本書適合有無基礎的程式員,內容由淺到深,講述了Mac和ios開發的常見問題的解決方案,參考德雷福斯模型的五個階段,這本書適合新手,可以方便尋找一些問題的解決方案,不合適有基礎的。 本書共有十一章,一到三章講解了怎樣建立程式,添加檔案,字串,數組等等一些基本問題,四到十章講解了包括記憶體管理,多線程,core
Time of Update: 2018-12-04
引用:http://hi.csdn.net/hou_cocoaCocoa是在Mac OS X系統上原生的一個編譯環境。他包含兩個架構,其實就是一系列的類庫,Foundation和AppKit。在你的iPhone等掌上裝置上,使用的則是他的一個子類 - Cocoa Touch。他所支援的Foundation架構與Cocoa相同,但他的使用者圖形類庫為UIKit,它是為掌上裝置特殊設計,提供了你裝置上的介面。Cocoa Touch與Cocoa一個比較鮮明的區別就是Cocoa
Time of Update: 2018-12-04
OC中的blocks和C++中的函數指標類似,從外觀和使用上可以看出Int(*CFunc)(int a); //C語言的函數指標。 調用 Intret=(CFunc)(10);Int(^BFunc)(int a); //Blocks 調用 intret=(BFunc)(10);也可以使用typedef關鍵字來定義blockstypedef (void)(^BFunc)(int a,int b);BFunc func=^(
Time of Update: 2018-12-04
第6章
Time of Update: 2018-12-04
在c++中我們可以多繼承來實現代碼複用和封裝使程式更加簡練。在objective-c中只能單繼承,不能多繼承,那麼除了協議protocol之外,我們可以實作類別似多繼承的一個方法就是,分類(category,又稱類別)。類別可以不修改原來的類(父類),和衍生類別的情況下,為原有的類增加新的方法,但是分類不能增加執行個體變數。格式(format):@interface class_name(category_name)<protocol,....>method
Time of Update: 2018-12-04
這兩天心血來潮,想看看傳說中的iphone 應用軟體是如何製作的。本著這個思想初步嘗試一下,遇到第一個問題就是windows上開發環境的搭建,畢竟只是先玩玩,買個Mac就太衝動了點,畢竟已有本本了,還不知熱度能持續多久呢。 基於Windows的Objective-C的開發運行環境的搭建可以使用GUNstep提供的一系列組件。主要用到4個軟體包:GNUstep MSYS SystemGNUstep CoreGNUstep DevelCairo BackendGUNstep官方網站
Time of Update: 2018-12-04
最近遇到這樣一個問題,以前的時候並未注意;建立一個工程,然後添加一個類,檔案結構是這樣的然後寫了這樣一小段程式,運行- (void)viewDidLoad{ [super viewDidLoad]; Test *testObj = [[Test alloc] init]; NSLog(@"release 前 %d",[testObj retainCount]); [testObj release]; NSLog(@"release 後
Time of Update: 2018-12-04
在Objective-C(.m)中使用C++(.cpp)或Objective-C++(.mm)時,編譯過程出現如下錯誤:expected '=', ',', ';', 'asm' or '__attribute__' before ***原因是C++或Objective-C++代碼被Objective-C代碼調用,或間接調用了(#import了#import其它.cpp或.mm檔案的.h檔案)。解決方案:1. 把調用或間接調用了.cpp或.mm的所有.m檔案改名為.mm檔案;2.
Time of Update: 2018-12-04
Apple在C,Objective-C和C++中擴充了Block這種文法的,並且在GCC4.2中進行了支援。現在我們可以在Mac 10.6和iOS 4中使用。如果是Mac 10.6 或 iOS 4.0 之前的平台,據說可以用http://code.google.com/p/plblocks/這個項目來支援Block文法。Apple在 Snow Leopard中所用到的Grand Central Dispatch(GCD)就是基於Blocks實現的。Grand Central
Time of Update: 2018-12-04
向nil發送訊息 在Objective-C中向nil發送訊息是完全有效——只是在運行時不會有任何作用。Cocoa中的幾種模式就利用到了這一點。發向nil的訊息的傳回值也可以是有效: • 如果一個方法傳回值是一個對象,那麼發送給nil的訊息將返回0(nil)。例如:Person * motherInlaw = [ aPerson spouse] mother]; 如果spouse對象為nil,那麼發送給nil的訊息mother也將返回nil。 •
Time of Update: 2018-12-04
1 id cattle[3]; 2 SEL say; 3 SEL skin; 其中id
Time of Update: 2018-12-04
isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class.isMemberOfClass: Returns a Boolean value that indicates whether the receiver is an
Time of Update: 2018-12-04
Class類型 到目前為止,我們已經知道了對應於方法的SEL資料類型,和SEL同樣在Objective-C裡面我們不僅僅可以使用對應於方法的SEL,對於類在Objective-C也為我們準備了類似的機制,Class類型。當一個類被正確的編譯過後,在這個編譯成功的類裡面,存在一個變數用於儲存這個類的資訊。我們可以通過一個普通的字串取得
Time of Update: 2018-12-04
Objective-C程式開發中的記憶體流失問題是新手非常頭痛的事情,可能是用C#這類自動垃圾釋放的語言太習慣了,用xcode中的profile工具查了一下我寫的小程式,記憶體流失了一大堆,經過一陣子排查,在NSMutableArray中添加對象後不正確維護對象的引用計數是一個主要原因。在NSMutableArray how to properly addObjects and