標籤:
1. #import,#include 和@class的區別
都引用一個類,根本定義區別:#include ,#import會把所有的copy一份到該檔案
#import比#include的優勢,import不會引起交叉變異(同一個檔案不會多次引用)
在 Objective-C 中,#import 被當成 #include 指令的改良版本來使用。除此之外,#import 確定一個檔案只能被匯入一次,這使你在遞迴包含中不會出現問題。
一般來說,在匯入 Objective-C 標頭檔的時候使用 #import,包含 C 標頭檔時使用#include。
@class 僅僅事申明該類
2 typedef作用
簡寫代碼。 一般結構體,block代碼塊時常用。編譯時間替換。
與#define區別,#define編譯前執行。
注意:
typedef pstr char *
const pStr p2的含義是:限定數
據類型為char *的變數p2為唯讀,因此p2++錯誤。-------唯讀。@!
3 動態綁定
用於多態。 id類型。在編譯時間能夠
1. 簡答題(每道2分) 總分20
1.1簡述#import和@class的作用與區別。
1.2簡述typedef的作用。
1.3什麼是動態綁定。
1.4列舉objective-c的優缺點。
1.5簡述alloc,dealoc retain,release的功能。
1.6使用點文法與直接賦值有什麼區別,比如[email protected]“student”與[email protected]“student”
1.7copy,assign,retain分別什麼情況下使用。
1.8objective-c有私人方法嗎?如果沒有,如何?,如果有如何聲明。
1.9static關鍵字的作用。
1.10類方法與執行個體方法建立的對象的區別。
2.演算法總分30分
2.1
//對指定數組降序排列,數組中儲存的內容為字串(5分)
+(NSArray*)sortArray:(NSArray*)array;
2.2
//用NSLog列印九九乘法表(5分)
+(void)printTable;
2.3
//對指定的字串(單詞間用空格分隔)進行分析,返回它裡邊所有單詞出現的次數,傳回值字字典 用單詞作為key, 出現次數作為值((10分)
+(NSDictionary*)wordCount:(NSString*)fileContent;
2.4
//根據輸入的內容列印(10分)
+(void)print:(NSInteger)count blankString:(NSString*)blankString flagString:(NSString*)flagString;
//比如 [class print:5 blankString:@“+”flagString:@“#”];
+ + # + +
+ # + # +
# + + + #
+ # + # +
+ + # + +
3.類設計
3.1公司類與員工類(25分)
員工類 Staff(5分)
成員變數
姓名(NSString) name
工齡(CGFloat) year (需要根據入職時間及公司成立時間計算得出)
部門(NSString) department
職位(NSString) post
領導(Staff) leader
入職時間(NSString) time
方法
三個參數的初始化方法(姓名,入職時間,部門),其它值可通過點文法賦值
-(id)initName:(NSString*)name time:(NSString*)time department:(NSString*)department;
列印方法
格式 “姓名:%@,工齡:%f,部門:%@,職位:%@,入職時間:%@“
-(void)print;
公司類Company(20分)
成員變數
公司名(NSString) name
成立時間(NSString) createTime
法人(Staff) leader
//部門名為字典的key,值為這個部門的所有員工數組
部門(NSMutableDictionary ) departmentArray
方法
一個參數的初始化方法(參數為數群組類型,包含三個值,分別為公司名,成立時間)
//添加新員工,如果員工所在部門不存在則建立,如果這個員工為這個部門領導要通知所有其他員工,不能重複添加員工(名稱和和入職時間都一樣的員工)
-(void)addStaff:(Staff*)staff;(5分)
//根據姓名和入職時間尋找員工
-(Staff*)findStaff:(NSString*)name time:(NSString*)time(5分)
//將指定的員工換到新部門
-(BOOL)changeDepartment:(Staff*)staff department:(NSString*)department;(5分)
//測試方法 建立公司,建立三個部門,每個部門至少兩個員工,將所有方法測試一遍
+(void)Test;
3.2書籤及其管理類(70分)
URLItem類(書籤類) (5分)
成員變數
唯一索引值 id(NSNumber類型)
網址url(字串)
標題 title(字串)
星級 star(NSNumber類型)
描述 description(字串)
訪問次數 vistis(整型)
TagItem類(標籤類) (5分)
成員變數
唯一索引值 id(NSNumber類型)
標籤名name(字串)
訪問次數 vistis(整型)
Bookmark類(書籤管理類)
方法
1.添加書籤:參數有網址,標題,標籤 (5分)
其中標籤是以逗號分隔開的一些詞或字組成的字串,比如@"明星,我的最愛,八卦"
2.刪除書籤(可以用id,url兩種方法刪除書籤)(5分)
3.查詢書籤(可以用id,url,標籤名來尋找書籤)(5分)
4.修改書籤(5分)
確定要修改的書籤的參數可能是id或url
要修改的值可能是標題,建立時間,或標籤(對原有標籤改名或全部替換)
5.獲得所有書籤(可按星級,訪問次數排序)(可能有沒有標籤的書籤)(5分)
6.獲得所有標籤(可按標籤名,訪問次數排序)(5分)
7.用標籤名刪除標籤(有這個標籤的所有書籤的這個標籤都要刪除)(10分)
8列印功能(5分)
列印某一個書籤的所有標籤
列印某一個標籤的所有書籤
列印所有書籤
列印所有標籤
9給已有書籤添加標籤(5分)
10.測試方法,完成所有你實現方法的測試(10)
IOS學習2