iPad有開關機的功能,這功能我要如何設計?! |
我是類別class, 您可以在類別中定義開關機的方法。 |
我是物件Object, 而後透過中括號"[]"傳送開關機的訊息, 讓iPad進行開關機即可。 |
1. 建立iPad類別
- 新增Objective-C class檔案,取名為iPad
2. 宣告開關機onOff方法
- 於.h檔中宣告開關機的方法 - onOff,宣告一個基本的方法基本上分三段:
- 存取層級:在此為 "-",表示為物件層級下存取的方法,即需先透過物件存取
- 回傳值:以小括號 () 表示,在此放入void,表示不傳回任何東西
- 方法名稱:在此為onOff
- 最後以分號";"作為結束
#import <Foundation/Foundation.h>
@interface iPad : NSObject
@property (readonly) NSString * UDID;
@property (readwrite) NSString * Type;
@property (readwrite) NSInteger Capacity;
//宣告開關機方法onOff,
// - 表示存取的層級是物件層級的方法,只有在建立物件後才可使用
// (void) 小括號中放void,表示不需回傳值
// onOff為方法名稱
// 加上;分號,表示宣告結束
-(void)onOff;
@end
3. 實作開關機onOff方法
- 於.m檔中實作onOff方法,在onOff方法後面加上 {}大括號,並於大括號中以程式描述開關機要作的事
- 注意,在此預先宣告_isOn,實體變數,用以表示目前開關機的狀態
#import "iPad.h"
@implementation iPad
{
//用以表示現在開關機的狀態,
//0表示已關機,
//1表示已開機
NSInteger _isOn;
}
@synthesize UDID = _UDID;
@synthesize Type = _Type;
@synthesize Capacity = _Capacity;
- (id)init {
self = [super init];
if (self != nil)
{
NSUUID *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];
_UDID = stringUUID;
//預設為0,表示關機
_isOn = 0;
return self;
}
return nil;
}
//實作onOff方法,
//在onOff方法後面加上 {}大括號,
//並於大括號中以程式描述開關機要作的事。
-(void)onOff
{
//關機中
if(_isOn == 0)
{
//進行開機動作
_isOn = 1;
NSLog(@"開機!");
}
else
{
//進行關機動作
_isOn = 0;
NSLog(@"關機!");
}
}
@end
4. 透過中括號"[]"傳送開關機的訊息 - onOff
- 最後只需要透過中括號傳送開關機的訊息,就可叫iPad進行開關機的動作
#import "iPad.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
iPad * ipad1 = [[iPad alloc] init];
ipad1.Type = @"iPad Air";
ipad1.Capacity = 16;
//預設為關機,因此這時會開機
[ipad1 onOff];
//已開機,此時會關機
[ipad1 onOff];
}
return 0;
}
檔案連結:objective_c_method.zip
方法存取層級:
- - :必須先建立實體物件,才能透過中括號"[]"傳送訊息給物件來執行方法
- + :不需建立實體物件,可直接透過中括號"[]"傳送訊息給類別來執行方法
- 方法在執行完後可以回傳資料,而回傳資料也是需要宣告可以回傳資料的型別,因此也會透過小括號"()"來宣告型別,而後在實作方法時,透過return將資料回傳,如下範例:
iPad.h
@interface iPad : NSObject
-(NSString*)getPhoneNumber;
@end
iPad.m
#import "iPad.h"
@implementation iPad
-(NSString*)getPhoneNumber
{
return @"0925555111";
}
@end