IOS_Objective-C學習筆記_(陣列 / 可修改陣列 ;字典 / 可修改字典)..


Objective_筆記 這篇筆記主要是在整理
陣列Array / 可修改陣列MuntibleArray ; 字典 Dictinoary/ 可修改字典MuntibleDictionary



#陣列Array

NSArray * thisarray = @[@50,@60];
NSLog(@"這是陣列內的數字:%@",thisarray);

這是可變動的陣列 NSMutableArray
//用一個陣列來產生一個可變動的陣列
NSMutableArray * thisMutableArray = [NSMutableArray arrayWithArray:@[@"50",@"100",@"50",@"40"]];
//取出陣列中第n個元素
NSString * one = thisMutableArray[1];
NSLog(@"陣列中第n個元素是:%@",one);

NSLog(@"這是一個可變動的陣列:%@",thisMutableArray);

//產生一個空的陣列
NSArray * emptyArray = @[ ];
NSLog(@"%@",emptyArray);
//以下這一行也是創造一個空的陣列
NSMutableArray * foo = [[NSMutableArray alloc]init];
NSLog(@"創造一個空陣列1:%@",foo);

//如果要修改陣列前,要先確確認陣列是用NSMutableArray 宣告的!
(因為這樣才能夠變動陣列的內容)
NSMutableArray * sub =[[NSMutableArray alloc]init];
//新增元素加到陣列 ,只能分批加入
[sub addObject:@"array1"];
[sub addObject:@"array2"];
[sub addObject:@"array3"];
NSLog(@"加入元素1:%@",sub);

//插入元素道地N個位置
[sub insertObject:@"array4" atIndex:2];
NSLog(@"插入元素到N位置1:%@",sub);
//移除第N個元素
[sub removeObjectAtIndex:2];
NSLog(@"移除第N個元素%@",sub);

//取出陣列中的每一個元素
for (NSString * member in sub) {
NSLog(@"%@",member);
}

接下來要寫的是 字典 NSDictionary 與 可變動字典 MutableDictionary
//字典 是一個沒有順序的容器型別
//存取方式是用key-value來存取 NSDictionary * book = @{
@"title":@"HellowWord",
@"author":@"liou",
@"isbn":@"12345678"
};
NSLog(@"印出字典陣列%@",book);

NSDictionary * album =@{
@"singer":@"HelloJJ",
@"issue":@"2003",
@"tracks":@[@"song1",@"song2",@"song3"] //曲目是個清單,因此清單是有順序的用陣列表示

};
//取出歌手名
NSString * singerName = album[@"singer"];
NSLog(@"歌手是:%@",singerName);
//取出發行日
NSString * year = album[@"issue"];
NSLog(@"歌手發行日是:%@",year);
//取出曲目
NSArray * songs = album[@"tracks"];
NSLog(@"曲目有:%@",songs);
//找出陣列中有幾筆資料 [album count] [album count];
NSLog(@"找出陣列有:%@ 筆資料",album);

//把所有陣列中的拿出來 ,循訪陣列 for(NSString * ssinger in [album allKeys]){
id value = album[ssinger];
NSLog(@"這裡是把所有陣列拿出來一次%@",value);

//可變動字典NSMutableDictionary  NSMutableDictionary * antherAlbum = [NSMutableDictionary dictionaryWithDictionary: @{ } ];
NSLog(@"產生一個可變動字典: %@ 在這!",antherAlbum);
//新增一組資料 ; 如果本來就有一樣的key時 會覆蓋更新 antherAlbum[@"company"] = @"EMI";
antherAlbum[@"singer"] = @"liou";
NSLog(@"新增一組資料:%@ 在這",antherAlbum);
//移除 antherAlbum[@"singer"] = nil;
NSLog(@"移除一組資料:%@ 在這",antherAlbum);



 註記:
陣列 :
有順序 / 用索引值取值 /
array * thisArray = @[@"值",@"值",@"值"   ] ; 

字典:
無順序 / 用key-value取值 /
NSDictionary * thisDictionary = @{@" 填key" :"填value " ,@" 填key" :"填value  };

如果要是可以變動的陣列和字典,則需要用到Mutable!
要使用時先思考,你要的是否有順序,是否有要修改!
這樣就很好決定你要用哪一個類型了

基本上兩個在寫法上,是一樣的模式!
特意在每一行上有NSLog出來這裡是會是什麼作用
只要跟打一次再印出來,就能清楚知道這個是怎麼樣運作。


留言

這個網誌中的熱門文章

20170122 Radiobutton功能練習 (溫度轉換)

iOS_開發 拿到 Tableview Cell 上的按鈕是哪一個 (Tableview Cell Button)