程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> object-c基本知識

object-c基本知識

編輯:關於C語言

 

總結程序啟動的過程如下:

1. 程序入口main函數創建UIApplication實例和UIApplication代理實例。

2. 在UIApplication代理實例中重寫啟動方法,設置第一ViewController。

3. 在第一ViewController中添加控件,實現應用程序界面。

 

1.調用方法用[],繼承用:

 

2.實例對象

一、NSString* string1 = [NSString string]; //自動釋放

二、NSString* string2 = [[NSString alloc] init]; //用完後要手動釋放,alloc分配內存和實例化,init初始化

[string2 release] ;

 

3.創建對象

在Objective-C的語法中,一個類通常分為兩部分。h文件聲明,m文件實現。

方法都是public的,成員變量都是protect的,(方法前面用-減號,是public,+號即static方法)

protocol相當於java的接口

h文件,提供get,set訪問器:

 

#import 
@interface Photo : NSObject {
NSString* caption;
NSString* photographer;
}
@property (retain) NSString* caption;
@property (retain) NSString* photographer;
@end

 

 

 

m文件,@synthesize指令為我們主動生成了setter和getter,所以我們必須要做的就
只有實現dealloc方法了。
只有當訪問器不存在的時候,@synthesize才會自動生成訪問器,所以,即使是使
用@synthesize聲明了一個屬性,你仍然可以實現自定義的getter和setter。

 

#import Photo.h
@implementation Photo
@synthesize caption;
@synthesize photographer;
- (void) dealloc
{
[caption release];
[photographer release];
[super dealloc];
}
@end


 

 


在dealloc方法裡釋放對象

 

‐ (void) dealloc
{
    self.caption = nil;
    self.photographer = nil;
    [super dealloc];
}


 

 

4.nil

相當於其他語言的null指針,不同在於在nil上調用方法不會導致異常

 

5.類目(Category)

類似於重寫(重點是 @implementation 跟 @interface 這 兩 行的括號)

 

#import 
@interface NSString (Utilities)
- (BOOL) isURL;
@end

 

 

 

注意import重寫的類+ 括號裡的名字
#import NSString-Utilities.h
@implementation NSString (Utilities)
- (BOOL) isURL
{
if ( [self hasPrefix:@http://] )
return YES;
else
return NO;
}
@end

6.IBAction,IBOutlet 靜態界面與代碼的關聯

 

通過在變量前增加IBOutlet來說明該變量將與界面上的某個UI對象對應,

在方法前增加IBAction來說明該方法將與界面上的事件對應.

 

7.異常(異常處理只有 Mac OS X 10.3 以上才支持)

@try{}

@catch{Exception *e}

@finally{}

 

8.id類型,不用知道上面類型,有此方法就響應,不用像java那樣必須轉換類型才能調用方法

 

9.迭代器NSEnumerator (NSArray不能改變長度,NSMutableArray可以)

NSDictionary相當於java的map

 

NSArray *array = [NSArray array ];
NSEnumerator *enumerator = [array objectEnumerator];
id obj;
while ( obj = [enumerator nextObject] ) {
printf( %s
, [[obj description] cString] );
}


 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved