Time of Update: 2018-12-05
http://www.cocoachina.com/macdev/cocoa/2009/0611/255.html 前些天有讀者提出需要在iPhone中開發Email的程式。在iPhone的SDK中除了使用mailto的方式發送郵件之外暫時還沒有其他更好的方法。這裡介紹兩個基於Objective-C的Open
Time of Update: 2018-12-05
前段時間花了點時間摸了下Objective-C,自己裝了“黑蘋果”,Lion系統,版本是10.7.2,還要安裝XCode開發環境,對應的版本為xocde_4.2_and_ios_5_sdk_for_lion.dmg。XCode3與Lion系統是不相容的,安裝了之後也看不到XCode工具,這點要特別注意下。安裝過程很簡單,這裡不再說明了。基本上現在大多數書的開發環境都都是xocde_3的,因此這裡邊自學《objective-c基礎教程》這本書,邊摸索下XCode4,邊整理一下相關的知識
Time of Update: 2018-12-05
一、安裝 從 http://www.gnustep.org/experience/Windows.html 下載四個檔案1、GNUstep MSYS System 2、GNUstep Core 3、GNUstep Devel 4、Cairo Backend 依次按照順序安裝在 d:/GNUStep二、編碼用記事本編寫代碼,完整的代碼如下:#include <stdio.h>int main(void){printf ("Welcome to
Time of Update: 2018-12-05
Objective-C語言特性1.Objective-C建立在C語言之上,他是在C語言基礎上添加擴充而來能夠建立和操作對象的一門心的設計語言。2.Objective-C是ANSI-C的超集,可以混編C和C++代碼。3.可以在現存C編譯器基礎上實現,不需要編寫全新的編譯器。在mac系統上編寫Objective-C一般都使用xcode編譯器。4.不支援命名空間機制。一般都是在類別名稱加首碼。在Cocoa編程環境中,所有Mac OS
Time of Update: 2018-12-05
1.類的聲明1-1@interface開始,@end結束1-2變數和方法不能混在一起,執行個體變數必須放在{}內1-3沒有static、const的執行個體變數。在.m檔案中可以聲明static靜態屬性:屬於類,不屬於對象。同樣,也沒有const方法,沒有友元方法。1-4“-”聲明的方法是protect,“+”聲明是public,如果一個方法在.h中沒有聲明,但在.m中有定義,則只能是.m檔案中類內部使用的private方法。所有方法都不能在類的聲明中實現。1-5所有的類都繼承自NSObject
Time of Update: 2018-12-05
1.nil一個null指標,指向一個objective - c的對象表示一個對象為空白:NSString* str = nil; ( #define nil ((id)0) )2.Nil一個null指標,指向一個objective - c類對象。表示一個類對象為空白:Class class = Nil;3.Null對Objective-C實值型別為空白:int number = Null;(相當於 int number = 0;) ( #define NULL ((void *)0) )4
Time of Update: 2018-12-05
Objective-C 中設定屬性一般有一下關鍵字:-- assign:指定setter方法用簡單的賦值,這是預設操作。你可以對標量類型(如int)使用這個屬性。你可以想象一個float,它不是一個對象,所以它不能retain、copy。-- retain:指定retain應該在後面的對象上調用,前一個值發送一條release訊息。你可以想象一個NSString執行個體,它是一個對象,而且你可能想要retain它。--
Time of Update: 2018-12-05
最近在做程式中需要在Objective-C類中聲明一個C語言方式的一維數組:@interface CArrayTest : NSObject{@private BOOL testArray[4]; }@end聲明屬性如果是@property(nonatomic,assign)BOOL testArray[4];會提示錯誤:Property can not have array or function type BOLL[4]==============================
Time of Update: 2018-12-05
一、繼承1.基本概念一個新類可以從已有的類派生出來,這個過程稱為繼承,新類稱為子類,已有的類稱為父類或超類。2.繼承的特點:實現代碼重用:子類可以重用父類的執行個體變數和方法。子類可以增加實力變數和方法擴充父類,但不能重載父類的執行個體變數所有類型都有一個公用基類:NSObject3.NSObject類 允許定義自己的根類,但通常不這樣做,而是利用現有的類
Time of Update: 2018-12-05
關鍵字@看到這個關鍵字,我們就應該想到,這是Object-C對C語言的擴充,例如@interface XXX。@interface聲明類@implementation實作類別@protocol聲明協議@optional與@protocol配合使用,說明協議中的某個或者某幾個方法可以不實現@required與@protocol配合使用,說明協議中的某個方法或者某幾個方法必須實現@end與@interface
Time of Update: 2018-12-05
今天在實現一個功能的時候,遇到了一個無比詭異的問題:具體描述如下:在一個view中定義了一系列的button,並為其設定了tag,然後為所有button都關聯了同一個點擊事件,在這個事件中根據button的id來處理,事件實現如下:- (IBAction)sendKeyHandler:(id)sender{ UIButton *button = (UIButton*)sender; switch (button.tag) { case 20:
Time of Update: 2018-12-05
✓ 類別是一個類,它是添加了新功能的現有類。✓ 使用類別就是為了能夠為現有類添加新的方法,不用繼承該現有類,就可使用現有類的對象調用添加的方法了。✓ 類別可以使類的實現分散在多個檔案中.✓ 類別中不能有變數,類別中沒有放變數的位置.✓ 如果類中的方法和類別中的方法名稱相同,這將造成衝突,類別的方法將完全取代類的方法。✓ 同一個類的不同類別聲明了相同的方法,這將導致不穩定,哪個方法會被調用是不確定的.類別聲明: #import "ClassName.h" @interface ClassName
Time of Update: 2018-12-05
最近開始學習iphone開發,圖靈的Objective-C基礎教程是本不錯的入門指引書籍。學習過程中發現一些小問題,雖然無甚緊要,但記錄下來對初接觸mac平台的開發人員還是有些協助的。 問題一:找不到用Foundation Tool建立工程。由於xcode版本的問題,新版本把command line Utility整合到Application下的Command line
Time of Update: 2018-12-05
寫程式遇到 Bug 並不可怕,大部分的問題,通過簡單的 Log 或者程式碼分析並不難找到原因所在。但是在 Objective-C 編程中遇到 EXC_BAD_ACCESS問題的時候,通過簡單常規的手段很難發現問題。這篇文章,給大家介紹一個常用的尋找 EXC_BAD_ACCESS 問題根源的方法。首先說一下 EXC_BAD_ACCESS 這個錯誤,可以這麼說,90%的錯誤來源在於對一個已經釋放的對象進行release操作。舉一個簡單的例子來說明吧,首先看一段Java代碼:public class
Time of Update: 2018-12-05
文章目錄 範圍 幾何資料類型 範圍typedef struct _NSRange{unsigned intlocation;Unsigned intlength;} NSRange;這個結構體用來表示相關事物的範圍,通常是字串裡的字元範圍或者數組的元素範圍,location用來表示起始位置,length表示該範圍所含元素的個數。例如有一個字串“Myname is
Time of Update: 2018-12-05
文章目錄 建立字串類方法擷取大小比較的策略 不區分大小寫比較如何判斷字串裡面還包含其他字串 NSString在前面已經說過是,是Cocoa中用來處理字串的類。下面就是NSString的一些常用方法及操作: 建立字串NSString的stringWithFormat:方法就是通過格式字串和參數建立NSString的:+ (id) stringWithFormat: (NSString *)
Time of Update: 2018-12-05
文章目錄 NSArray可變數組 枚舉 快速枚舉NSDictionary Cocoa提供了很多集合類,來提供我們使用,下面就對其中的對象的使用說明NSArrayNSArray是一個Cocoa類,用來儲存物件的有序列表,你可以在其中放入任意類型的對象:NSString或者是其他你想要儲存的對象,但只能是儲存Objective-C的對象,而不能儲存C語言中的基礎資料型別 (Elementary Data
Time of Update: 2018-12-05
尋找檔案下面通過一個程式有組合使用上面所學的知識,比如NSString、NSMutableArray、NSEnumerator以及NSFileManager來對檔案系統進行操作,如建立目錄、刪除檔案、移動檔案或者擷取檔案資訊。在下面的例子中,會要求NSFileManager來建立NSDirectoryEnumerator來遍曆檔案的階層。通過注釋對下面的例子進行說明:#import <Foundation/Foundation.h> int main (int argc,
Time of Update: 2018-12-05
在windows下安裝了cygwin和iphone的sdk,下載了很多代碼去看,結果都是c objective-c 混合,由於公司以前的遊戲都是c++代碼,編譯一直有問題。查了很多資料,都是在xcode上混合編譯。公司小氣不買蘋果機,只好瘋似的實驗。結果發現先把所有檔案都編譯為彙編代碼,編譯的時候要指定為macosx 10.4版本和arm1176jzf-s的cpu。然後再進行串連。結果成功了,記得所有objective-c 和 objective-c ++寫的代碼都用mm尾碼。mix
Time of Update: 2018-12-05
第一次接觸到委託是在學習《大話設計模式》的時候碰到的,我是一名Javaer,那本書是.Net的,裡面提到了委託這個概念,並且有相應的用法與支援,當時覺得挺奇怪,怎麼Java中沒有遇到過呢?後來才知道,Java沒有明確的相應支援,感覺委託很像依賴,彙總,代理,事件監聽,所以很長一段時間沒有去真正的搞明白它,以為這些就是委託,今天學習到Objective-C中的委託的時候,才發現這些不是,仔細的研究再加上與Java相結合最後自己得出了委託的定義,雖然很像之前說的那些方式,但還是有一定的區別: