OC 類設定及NSArray自定義排序

2021-06-28 14:04:31 字數 2620 閱讀 5765

這是一道類設計題 主要考沒有arc的情況下 手動寫getter setter 手動進行記憶體管理。

定義乙個學生類,需要有姓名,年齡,考試成績三個成員屬性,建立

5個物件,屬性可以任意值。(

objective-c)

1)   

不使用@property

,手動編寫他們的訪問器方法(

getter

和setter

),注意記憶體管理(手動管理記憶體)

2)   

增加乙個便利構造器(快速構造器)

3)   

使用nslog

輸出學生物件時,輸出資訊格式為:

my name is ***  age is *** score is ***

4)    對5

個學生物件按照成績

—》年齡

—》姓名優先順序排序(成績相同按照年齡排序,成績年齡相同按照姓名排序(

5個學生的屬性值自己隨便設定,姓名不考慮中文,按

26個大小字母排序))

student.h

#import @inte***ce student : nsobject

-(void) setname:(nsstring*) name;

-(nsstring*) name;

-(void) setage:(int) age;

-(int)age;

-(void) setscore:(int) score;

-(int)score;

-(id) initwithname:(nsstring*)name andage:(int)age andscore:(int)score;

-(void) printinfo;

+(id) stuwithname:(nsstring*)name andage:(int)age andscore:(int)score;

@end

student.m

#import "student.h"

@implementation student

-(void)setname:(nsstring *)name

_name=name;

}-(nsstring *)name

-(void)setage:(int)age

-(int)age

-(void)setscore:(int)score

-(int)score

-(void)dealloc

-(id)initwithname:(nsstring *)name andage:(int)age andscore:(int)score

return self;

}+(id)stuwithname:(nsstring *)name andage:(int)age andscore:(int)score

-(void)printinfo

- (nscomparisonresult)comparestu:(student *)stu

}return result;

}@end

main.m

#import #import "student.h"

int main(int argc, const char * argv) ];

/*輸出結果

2015-01-29 21:19:48.120 測試題10[2752:378621] 位置1的 name is s5 age is 55 score is 55

2015-01-29 21:19:48.120 測試題10[2752:378621] 位置2的 name is s4 age is 44 score is 44

2015-01-29 21:19:48.120 測試題10[2752:378621] 位置3的 name is s3 age is 33 score is 33

2015-01-29 21:19:48.120 測試題10[2752:378621] 位置4的 name is s2 age is 22 score is 22

2015-01-29 21:19:48.120 測試題10[2752:378621] 位置5的 name is s1 age is 11 score is 11

*/nslog(@"排序結束");

[s1 release];

[s2 release];

[s3 release];

[s4 release];

[s5 release];

}return 0;

}

解析:在student.m 檔案中我寫了乙個

內部函式 在介面宣告部分是沒有寫的

只能在這個類中使用,

這道題的難點在於排序 需自定義排序規則

呼叫方式:

nsarray

*sortarray=[array

sortedarrayusingselector

:@selector

(comparestu:)];

其中comparestu 為自定義的內部方法 用於進行排序  返回結果為 nscomparisonresult

過兩天我會單獨寫乙個關於nsarray 排序相關的博文。 

OC丟擲異常與自定義異常類

main.m oc丟擲異常與自定義異常類 created by goddog on 15 1 11.1.自行丟擲異常,應該使用 throw語句,throw語句可以單獨使用,throw語句丟擲的不是異常類,而是乙個異常例項。myexception.h oc丟擲異常與自定義異常類 created by ...

OC中重寫構造方法及自定義構造方法

構造方法 用來初始化物件的方法 如 person p person alloc init alloc用來分配記憶體空間 init初始化,也就是oc中的構造方法 重寫構造方法 instancetype init if self super init age 18 return self 將構造方法初始...

新增自定義引數及設定方式

引數列表顯示引數 在引數管理介面,增加乙個引數。一般情況下,引數管理這個選單對用於是不可見的,需要自己新增選單,ui類名com.kingdee.eas.base.param.client.paramlistui。增加完選單後,重新登陸,就可以在需要的子系統下面,增加引數 自定義引數介面 自定義引數,...