OC - NSArrayAndNSMutableArray
来源:互联网 发布:外星人windows hello 编辑:程序博客网 时间:2024/06/05 18:58
<main.m>
#import <Foundation/Foundation.h>#import "Book.h"int main(int argc, const char * argv[]){ @autoreleasepool { //nsarray 是存放对象的 //创建三个对象 NSString *meiZu = [[NSString alloc ]initWithFormat:@"MeiZu"]; NSString *xiaoMi = [[NSString alloc]initWithFormat:@"xiaoMi"]; NSString *apple =[[NSString alloc] initWithFormat:@"Apple"]; //NSArray //initWithObjects: 方法,需要传入多个对象,这些对象之间以","隔开,最后以 nil 结尾 //!!!!! nil 之后的对象不在存入数组 NSArray *array = [[NSArray alloc] initWithObjects: apple,meiZu,xiaoMi,nil]; NSLog(@"%@",array); //通过下标找到对象 NSString *who = [array objectAtIndex:0]; NSLog(@"%@",who); //通过对象找下标 //如果在输入对象的地方输入 array 这个数组的地址,则会输出第一个符合对象的下标,并返回 NSInteger index = [array indexOfObject:meiZu]; NSLog(@"%ld",index); //数组元素个数 NSInteger count = [array count]; NSLog(@"count = %ld",count); //遍历 for (int i = 0; i < [array count]; i++) //在此也可以用 array.count ,所以说它使一个 getter 方法 { NSLog(@"%@",[array objectAtIndex:i]); } //排序 NSArray *sortedArr = [array sortedArrayUsingSelector:@selector(compare:)];//compare:就是比较的方法 NSLog(@"%@",sortedArr); // // // //// NSMutableArray// NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithObjects:apple,meiZu, nil];// // //添加// [mutableArray addObject:xiaoMi];// NSLog(@"%@",mutableArray);// // //删除// //根据下标删除// [mutableArray removeObjectAtIndex:1];// NSLog(@"%@",mutableArray);// // //根据对象删除// [mutableArray addObject:meiZu];// [mutableArray addObject:meiZu];// [mutableArray addObject:meiZu];// NSLog(@"%@",mutableArray);// //在移除时需要注意的是,最好用下标的方式,因为下标是具有唯一性的.如果用对象名的时候可能会有多个匹配的对象都会遭到删除.// [mutableArray removeObject:meiZu];// NSLog(@"%@",mutableArray);// // //交换// [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:1];// NSLog(@"%@",mutableArray);// // // //排序// // NSString *str1 = @"aa";// NSString *str2 = @"bb";// NSString *str3 = @"cc";// NSString *str4 = @"dd";// NSString *str5 = @"ee";// // NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:str3,str4,str5,str1,str2, nil];// NSLog(@"%@",arr);// // for (int i = 0 ; i < arr.count - 1; i++) {// for (int j = 0 ; j < arr.count - i - 1; j++) {// //获取数组元素// NSString *a = [arr objectAtIndex:j];// NSString *b = [arr objectAtIndex:j + 1];// if ([a compare:b] > 0) {// [arr exchangeObjectAtIndex:j withObjectAtIndex:j + 1];// }// }// }// NSLog(@"%@",arr);// // // //封装好的排序方法// [arr sortUsingSelector:@selector(compare:)];// NSLog(@"%@",arr);// // //获取第一个对象// [arr firstObject];// //获取最后一个对象// [arr lastObject];// // // // //图书管理// //1.使用数组管理所有书籍// //2.数组可以添加删除// //3.可以从数组根据书名查找书籍,并修改书籍的价格// //4.展示所有书籍的清单// // // //创建三本书对象// // Book *chinese = [[Book alloc] initWithBookName:@"Chinese" price:25.8];// Book *math = [[Book alloc] initWithBookName:@"Math" price:36.2];// Book *english = [[Book alloc ] initWithBookName:@"English" price:49.9];// // //创建可变数组管理书籍// NSMutableArray *library = [[NSMutableArray alloc] initWithObjects:chinese,math, nil];// //添加书籍// [library addObject:english];// NSLog(@"%@",library);// // //添加音乐书籍// Book *music = [[Book alloc] initWithBookName:@"Music" price:100];// [library addObject:music];// NSLog(@"%@",library);// //删除书籍// [library removeObject:english];// NSLog(@"%@",library);// // // //查找书籍// for (int i = 0; i < [library count]; i++) {// //找到数组中的 book 对象// Book *book = [library objectAtIndex:i];// if ([[book bookName] isEqualToString:@"Chinese"] ) {// book.price = 200;// // }// }// NSLog(@"%@",library);// // // //遍历打印清单// // for (int i = 0; i < [library count]; i++) {// NSLog(@"%@",[library objectAtIndex:i]);// }// //NSLog(@"%@",library); 和上面那个打印是不同的 ,因为下面这个是打印 library 里面的一整串的字符数据,而上面的是遍历循环打印每个对象的数据进行打印// // // // // // // // } return 0;}
<Book.h>
#import <Foundation/Foundation.h>@interface Book : NSObject{ NSString *_bookName; CGFloat _price;}-(id)initWithBookName:(NSString *)bookName price:(CGFloat)price;//setter getter-(void)setBookName:(NSString *)bookName;-(NSString *)bookName;-(void)setPrice:(CGFloat)price;-(CGFloat)price;//重写 description 规定了对象的输出的格式,这个方法是本来就有的只是重写了一下,在 NSLog 调用时自动调用执行这个-(NSString *)description;@end
<Book.m>
#import "Book.h"@implementation Book-(id)initWithBookName:(NSString *)bookName price:(CGFloat)price{ if ([super init]) { _bookName = bookName; _price = price; }return self;}//setter getter-(void)setBookName:(NSString *)bookName{ _bookName = bookName;}-(NSString *)bookName{ return _bookName;}-(void)setPrice:(CGFloat)price{ _price = price;}-(CGFloat)price{ return _price;}-(NSString *)description{ return [NSString stringWithFormat:@"bookName:%@ price:%.2f",_bookName,_price];}@end
0 0
- OC - NSArrayAndNSMutableArray
- oc
- oc
- OC
- OC
- OC
- oc
- oc
- oc
- OC
- OC
- oc
- oc
- OC
- OC
- OC
- oc
- oc
- 解读核心动画类
- Qt打包生成exe程序
- 字符串的排序(多种方法)
- C++ 运算符重载(二)
- Apache与Tomcat 区别联系
- OC - NSArrayAndNSMutableArray
- dede整站迁移
- Spring---IOC原理浅析
- python:元组和小括号的误导
- 小白书之栈的调用过程
- C# 、Vb .Net 中 Datagridview显示行号方法。
- Black Box(POJ--1442
- Codeforces 19D(线段树+离散化)
- 安卓百度地图附近poi搜索以及到指定poi的换乘方案