ios7編寫自定義類1——Start Developing iOS Apps Today——從今天開始開發IOS(IOS7版)系列源文檔翻譯(十七) – iPhone手機開發技術文章 iPhone軟體開發教學課程

當你開發iOS應用程序,你會發現許多場合,當你需要編寫自己的自定義類。當你需要與數據一起打包自定義行為的自定義類是有用的。在一個自定義的類,你可以定義你自己的行為來存儲,操縱和顯示數據。
例如,考慮在iOS的時鐘應用程式的全球時鐘標簽。這些單元格在這個表視圖需要顯示比標準表視圖單元更多的內容。這是為瞭實現一個子類,它擴展瞭的UITableViewCell的行為讓你顯示額外的自定義數據給定表視圖單元格的好機會。如果你在設計這個自定義類,您可以添加網點為一個標簽來顯示未來信息和圖像視圖的時間顯示自定義時鐘上的單元格的右邊。

本章將教你什麼是你需要瞭解的Objective-C的語法和類結構來完成實現你的todolist的應用程序的行為。它討論XYZToDoItem,這將代表您的待辦事項清單上的單個項目的自定義類的設計。在第三個教程中,您將真正實現這個類,並把它添加到你的應用程序。
vcD4KPGgzPsn5w/e6zcq1z9bSu7j2wOA8L2gzPgrSu8Dg1NpPYmplY3RpdmUtQ7XEuea3ttKqx/PBvbj2sr+31qO6vdO/2rrNyrXP1qGjuMO907/a1ri2qL6/vrnI57rO1Nq4+LaowODQzbXEttTP87XExL+1xMrH0qrKudPDtcTG5Mv7ttTP86Gju7u+5Luwy7WjrMv8tqjS5cHLwOC1xNPrzeK958q1wP3WrrzktcS5q7myvdO/2qGjyrXKqbD8wKjU2r3Tv9rW0Mn5w/e1xMO/uPa3vbeotcS/yda00NC0+sLroaMgPGJyPgrSu7j2ttTP89OmuMOxu8novMazydL+stjG5MTasr/Ktc/Wz7i92qGj1NpPYmplY3RpdmUtQ6OsvdO/2rrNyrXP1s2os6O3xdbD1Nq1pbbAtcTOxLz+o6zV4tH5xOPQ6NKq1/a1xNa7yse5q7myvdO/2qGj0+tDtPrC66OsxOO2qNLlzbfOxLz+us3UtM7EvP6jrNLUuau/qsn5w/e008TjtcS0+sLrtcTKtc/Wz7i92tbQt9bA67P2wLSho73Tv9rOxLz+vt/T0C5owKnVucP7o6zOxLz+us3Ktc/WzsS8/r7f09AubbXEwKnVuaGjPGJyPgoKPGg0Pr3Tv9qjqGludGVyZmFjZaOpPC9oND4K08PT2sn5w/fSu7j2wOC907/atcRPYmplY3RpdmUtQ7XE0++3qMjnz8LL+cq+o7o8YnI+Cgo8cHJlIGNsYXNzPQ==”brush:java;”>@interface XYZToDoItem : NSObject

@end
這個例子聲明瞭一個名為XYZToDoItem類,它繼承自NSObject。
公共屬性和行為的@接口聲明中定義。在這個例子裡,沒有超出指定超類,所以預期可對XYZToDoItem的實例的唯一的行為是自NSObject繼承的行為。所有對象都期望有一個最低的行為,因此默認情況下,他們必須繼承自NSObject(或它的子類)。

實現(Implementation)

用於聲明一個類實現瞭Objective-C的語法如下所示:

#import "XYZToDoItem.h"
 
@implementation XYZToDoItem
 
@end

如果聲明中的類接口的任何方法,你需要實現它們在這個文件中。

存儲一個對象的數據作為屬性

考慮到待辦事項需要持有什麼樣的信息。你可能需要知道它的名稱,創建時間,以及是否它已經完成。在您的自定義XYZToDoItem類,你會在性能存儲這些信息。
聲明這些屬性所在的接口文件(XYZToDoItem.h)內。下面是他們的樣子:

@interface XYZToDoItem : NSObject
 
@property NSString *itemName;
@property BOOL completed;
@property NSDate *creationDate;
 
@end

在這個例子中,XYZToDoItem類聲明瞭三個公共屬性。這些屬性可用於全面的公眾訪問。隨著公共訪問,其他對象可以讀取和改變屬性的值。
你可能會決定申明一個屬性不應該被改變(即,它應該是隻讀的)。來指示屬性是否打算隻讀其中包括 – Objective-C的屬性聲明包括財產屬性。舉例來說,如果你不想要一個XYZToDoItem的創建日期是多變的,你可能會更新XYZToDoItem類接口看起來像這樣:

@interface XYZToDoItem : NSObject
 
@property NSString *itemName;
@property BOOL completed;
@property (readonly) NSDate *creationDate;
 
@end

屬性可以是私人或公共的。有時,它是有道理的,使一個私有財產,這樣其他類不能查看或訪問它。例如,如果你想保持一個代表項目被標記為不對此信息給予其他類別的訪問,使私有財產通過把它在一個類擴展在你的實現文件的頂部(完成日期起財產軌道XYZToDoItem.m)。

#import "XYZToDoItem.h"
 
@interface XYZToDoItem ()
@property NSDate *completionDate;
@end
 
@implementation XYZToDoItem
 
@end

您可以訪問使用getter和setter屬性。吸氣劑返回一個屬性值,和setter改變它。一個常見的??語法速記訪問getter和setter方法??是點符號。對於物業讀取和寫入訪問,您可以使用點符號為獲取和設置屬性的值。如果你有類XYZToDoItem的對象的TodoItem,您可以執行以下操作:

toDoItem.itemName = @"Buy milk";                 //Sets the value of itemName
NSString *selectedItemName = toDoItem.itemName;  //Gets the value of itemName

發佈留言