Oc - DAY - 4

//    作业1

//    截取字符串“20|http://www.baidu.com”中 “|” 前面和后面的字符串,并输出。

//    将“文艺青年”改成“213青年”。

NSString *string1 = @"20|http://www.baidu.com";

NSString *string2 = [string1 substringToIndex:2];

NSLog(@"%@", string2);

NSString *string3 = [string1 substringFromIndex:3];

NSLog(@"%@", string3);

//方法2

NSArray *substrings = [string1 componentsSeparatedByString:@"|"];

NSLog(@"%@", [substrings firstObject]);

NSLog(@"%@", [substrings lastObject]);

NSString *string4 = @"文艺青年";

NSString *newString = [string4 stringByReplacingOccurrencesOfString:@"文艺" withString:@"213"];

NSLog(@"%@", string4);

NSLog(@"%@", newString);

//方法2

//    NSMutableString *string5 = [[NSMutableString alloc] initWithCapacity:0];

//    作业2

//    图书管理

//    1、使用数组管理所有书籍。

//    2、数组可以添加、删除。

//    3、可以从数组根据书名查找书籍,并修改书籍的价格。

//    4、展示所有书籍清单(书名)。

Book *book1 = [[Book alloc] init];

book1.name = @"chinese";

book1.price = 23.0;

Book *book2 = [[Book alloc] init];

book2.name = @"Math";

book2.price = 25.0;

Book *book3 = [[Book alloc] init];

book3.name = @"English";

book3.price = 20.0;

Book *book4 = [Book bookWithName:@"physics" price:30.0];

Book *book5 = [Book bookWithName:@"chemistry" price:25.9];

//    NSArray *array1 = [NSArray arrayWithObjects:book1.name, book2.name, book3.name, book4.name, book5.name, nil];

//创建可变数组

NSMutableArray *mArray = [[NSMutableArray alloc] init];

NSArray *array = [NSArray arrayWithObjects:book1, book2, book3, book4, nil];

[mArray addObjectsFromArray:array];

NSLog(@"%@", mArray);

//添加

[mArray addObject:book5];

NSLog(@"%@", mArray);

//删除

[mArray removeObjectAtIndex:1];//通过下标删除

[mArray removeObject:book1]; //通过元素删除

NSLog(@"%@", mArray);

//查找书籍,修改书籍价格

static NSInteger a = 0;

for (int i = 0; i < mArray.count; i++) {

if ([[[mArray objectAtIndex:i] name]isEqualToString:@"chinese"]) {

[[mArray objectAtIndex:i] setPrice:25.0];

a = 1;

}

}

if (a == 0) {

NSLog(@"无此书");

}

//方法2

//    bool flag = NO;

//    for (Book *tempBook in mArray) {

//        if ([tempBook.name isEqualToString:@"chinese"]) {

//            tempBook.price = 100.0;

//            flag = YES;

//        }

//    }

//    if (!flag) {

//        NSLog(@"无此书!");

//    }

//展示所有书籍名字

for (NSString *string in mArray) {

NSLog(@"%@", string);

}

//复杂方法

//如果数组不初始化, 不能使用

NSMutableArray *bookArray;

[bookArray addObject:book1];

NSLog(@"%@", bookArray);

//

BookManagementSystem *manager = [[BookManagementSystem alloc] init];

[manager addBook:book1];

[manager showBooks];

//    作业3

//    实现简单通讯录操作。

//    1、定义联系人类Person。实例变量:姓名、性别、电话号码、住址、分组名称。方法:自定义初始化方法(姓名、电话号码)、显示联系人信息

//    2、在main.m中定义可变数组,管理所有联系人。可以添加新联系人对象,如果姓名或电话号码为空,打印添加失败。

//    3、获取某个分组下的所有联系人。

//    4、根据电话号码搜索联系人。

//    5、获取所有女性联系人

//    6、根据姓名删除联系人

//    7、删除某个分组全部联系人

//    8、展示通讯录中所有联系人

//    NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithCapacity:0];

//

//    Person *person1 = [[Person alloc] initWithName:@"wangming" number:18749619087];

//    person1.gender = @"男";

//    person1.address = @"高新区莲花街";

//    person1.group = @"W";

//

//    Person *person2 = [[Person alloc] initWithName:@"zhangqiang" number:18749629087];

//    person2.gender = @"男";

//    person2.address = @"郑州市新郑市";

//    person2.group = @"Z";

//

//    Person *person3 = [[Person alloc] initWithName:@"xiaoxue" number:18749639087];

//    person3.gender = @"女";

//    person3.address = @"北京海淀";

//    person3.group = @"X";

//

//    Person *person4 = [[Person alloc] initWithName:@"liuli" number:0];

//    person3.gender = @"女";

//    person3.address = @"海南三亚";

//    person3.group = @"L";

//

//    //添加

//    NSArray *array1 = [NSArray arrayWithObjects:person1, person2, person3, nil];

//    [mArray1 addObjectsFromArray:array1];

//    NSLog(@"%@", mArray1);

//    [mArray1 addObject:person4];

//    NSLog(@"%@", mArray1);

//    [person4 information];

//    [[mArray1 objectAtIndex:1] information];

时间: 2024-12-29 07:57:33

Oc - DAY - 4的相关文章

iOS开发——网络编程OC篇&amp;Socket编程

Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要

嵌入式&amp;iOS:回调函数(C)与block(OC)传 参/函数 对比

C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(int data_i32)); callBack.c 1).在doSomeThingCount函数,对运行次数自增,并调用参数--函数. void DSTCount(void(*CallBack)(int data_i32)) { static int numb = 0; numb++; (*Call

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

OC内存管理

OC内存管理 一.基本原理 (一)为什么要进行内存管理. 由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等. 管理范围:任何继承NSObject的对象,对其他的基本数据类型无效. 本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也

关于OC中直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型

关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使用NSStringFromCGRect(CGRect rect)来直接打印一个结构体,其他打印可以参考以下内容 UIKIT_EXTERN NSString *NSStringFromCGPoint(CGPoint point); UIKIT_EXTERN NSString *NSStringFrom

OC高效率52之多用类型常量,少用#define预处理指令

// //  ViewController.m //  OC高效率52之多用类型常量,少用#define预处理指令 /**  *     1. 不要用预处理定义常量.这样定义出来的常量不含类型信息,编译器只是会在编译前据此执行查找与替换操作.即时有人重新定义了常量值,编译器也不会产生警告信息,这将导致应用程序中得常量值不一致.        2.在实现文件中使用static const 来定义"只在编译单元内可见的常量".由于此类常量不在全局符号表中,所以无需为其名称加前缀.     

iOS开发——面试篇&amp;OC基本语法总结(面试)

OC基本语法总结(面试) C和OC对比 OC中主要开发在什么平台上的应用程序? 答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头? 答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型? 答: Block类型 指针类型(Class, id类型) 空类型 特殊类型(SEL, nil) 面向对象特性是什么? 答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的

UIWebView中的JS和OC的互调

html的代码如下: <html> <head>     <meta xmlns="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=utf-8" />     <title>这是一个示例html文件</title>     <script Type='text/j

OC中protocol、category和继承的区别

利用继承,多态是一个很好的保持"对扩展开放.对更改封闭"(OCP)的办法,也是最常见的一种方法.Objective C还支持另外两种语法来支持OCP:Protocol和Category.Protocol只能定义一套接口,而不能提供实现,变相的也是一种Abstract class的实现方式(oc 语法上本身不支持抽象基类).Category可以为类提供额外的接口和实现.那么到底三者(继承, Protocol,Category)在使用上到底有什么本质的区别呢?在我看来,protocol的作

这个寒假真正意义的开始----第一天学习OC。

这么晚了 ,虽然很累,但是更多的是为自己把从晚上九点就开始敲的代码慢慢完整无误的敲出来了而高兴的情绪. Unix ---- 一开始一边看视频一边跟着视频敲,真的一头雾水. 后来干脆不动手操作,一口气把那四个OC程序的视频看完了才差不多懂了皮毛,所以就导致从九点到十一点只敲了一个程序,极端的程序..... 其实我想说,我学习的过程基本都是这样.万事开头难,每件事的开头对我来说都难,可是只要坚持下来度过去了,继续努力一定会成功的. 在unix里面总是粗心错了很多遍   所以重头开始敲了很多遍  现在