IOS學習2

來源:互聯網
上載者:User

標籤:

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.