OC经典练习
来源:互联网 发布:淘宝几点上架最好 编辑:程序博客网 时间:2024/05/29 18:18
一.将“⽂文艺⻘青年”改成“213⻘青年”。
将 整数123 转换为字符串“123”。
将 “i love you”单词⾸首字⺟母变⼤大写 “I love You”
截取字符串“20|http://www.baidu.com”中 “|” 前⾯面和后⾯面的字符串, 并输出。
// NSString * str = [[NSString alloc] initWithString:@"文艺青年"]; NSString * str = @"文艺青年"; NSLog(@"%@",str); NSString * str2 = [str stringByReplacingOccurrencesOfString:@"文艺" withString:@"123"]; NSLog(@"%@",str2); //================================================= NSInteger a = 122; NSString * str3 = [NSString stringWithFormat:@"%ld",a]; NSLog(@"%@",str3); //================================================= NSString * str4 = @"i love you"; NSString * str5 = [str4 capitalizedString]; //字符串中每个单词首字母变大写 NSLog(@"%@",str5); //================================================= NSString * str6 = @"20|http://www.baidu.com"; NSArray * arry = [str6 componentsSeparatedByString:@"|"]; for (NSString *s in arry) { NSLog(@"%@",s); }
据 遍历数组
提⽰示:将标量转换为NSNumber或者NSValue才能存储
NSNumber * int_number = [NSNumber numberWithInt:10]; NSMutableArray * mularr = [NSMutableArray arrayWithObjects:int_number, nil]; NSNumber * double_number = [NSNumber numberWithDouble:23.5]; [mularr addObject:double_number]; NSNumber * bool_number = [NSNumber numberWithBool:YES]; [mularr addObject:bool_number]; NSRange range = {1,5}; // 注意这里不能带*号 NSValue * range_struct = [NSValue valueWithRange:range]; [mularr addObject:range_struct]; // NSLog(@"%@",range_struct); for (int i = 0;i < [mularr count];i ++) { NSLog(@"%@",mularr[i]); // NSLog(@"%@",[mularr objectAtIndex:i]); } // 若需要变回原来的类型则需要用intValue,doubleValue等
1、定义联系⼈人类Contact。实例变量:姓名、性别、电话号码、住址、分组名称。⽅方 法:初始化⽅方法(姓名、电话号码)、显⽰示联系⼈人信息
2、在main.m中定义可变数组,管理所有联系⼈人。可以添加新联系⼈人对象,如果姓名 或电话号码为空,打印添加失败。
3、获取某个分组下的所有联系⼈人。
4、根据电话号码搜索联系⼈人。
5、获取所有⼥女性联系⼈人
6、根据姓名删除联系⼈人
7、删除某个分组全部联系⼈人
8、展⽰示通讯录中所有联系⼈人
9、选做:定义AddressBook类,封装上述功能。
===================================================================================
我是在定义了一个NSMutableArray分类,然后在其中实现了不同的代码块
方法类:
- (void)addContact:(Contact *)contact;- (void)getContactsOfAnyOneOfGroub:(NSString *)groub;- (void)searchContactWithPhone:(NSString *)phone;- (void)deleteContactWithName:(NSString *)name;- (void)deleteContactOfGroub:(NSString *)groub;- (void)showAllContacts;
实现:
<span style="font-size:18px;">- (void)addContact:(Contact *)contact{ if (([contact.name isEqualToString:@""]==1)||([contact.phone isEqualToString:@""]==1)) { NSLog(@"添加失败!"); } else{ [self addObject:contact]; } }- (void)getContactsOfAnyOneOfGroub:(NSString *)groub{ for(Contact *contact in self) { if ([contact.groub compare:groub] == 0) NSLog(@"%@",contact); }}- (void)searchContactWithPhone:(NSString *)phone{ int temp = 0; for(Contact *contact in self) { if ([contact.phone compare:phone] == 0) { NSLog(@"%@",contact); temp = 1; } } if (temp == 0) { NSLog(@"Do not have this contact"); }}- (void)deleteContactWithName:(NSString *)name{ for (int i = 0; i < [self count]; i ++) { if ([[self[i] name] compare:name] == 0) { [self removeObject:self[i]]; break; } }}- (void)deleteContactOfGroub:(NSString *)groub{ for (int i = 0; i < [self count]; i ++) { if ([[self[i] groub] compare:groub]==0) { [self removeObject:self[i]]; i --; // 关键:回溯 } }}- (void)showAllContacts{ for(Contact *contact in self) NSLog(@"%@",contact);}</span>当然别忘了:
- (NSString *)description{ NSString * str = [[NSString alloc]initWithFormat:@"%@ %@ %@",_name,_phone,_groub]; return str;}
四.给NSString添加初始化⽅方法 initWithDate: forFormat:。
第⼀一个参数是NSDate对象,第⼆二个参数是NSString对象,第⼆二个 参数⽤用来指定NSDateFormatter的format。
- (instancetype)initWithDate:(NSDate *)date forFormat:(NSString *)str{ NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:str]; str = [formatter stringFromDate:date]; return str ;}
// ===================================== NSDate * date = [NSDate date]; NSLog(@"dd"); NSString * str = [[NSString alloc] initWithDate:date forFormat:@"yyyy-MM-dd HH:mm:ss"]; NSLog(@"%@",str);// =====================================五.给NSMutableArray添加convert⽅方法,实现数组倒序
+ (void)convert:(NSMutableArray *)mulArray{ for (int i = 0,j = (int)[mulArray count]-1; i<j; i ++,j --) { [mulArray exchangeObjectAtIndex:i withObjectAtIndex:j]; } }- (void)convert:(NSMutableArray *)mulArray{ for (int i = 0,j = (int)[mulArray count]-1; i<j; i ++,j --) { [mulArray exchangeObjectAtIndex:i withObjectAtIndex:j]; }}分别用类方法和对象方法实现,差别在哪里呢你懂得。。。。
六.定义结婚协议,Woman是代理,为Boy做家务挣钱。。。。。
@protocol MarryProcotol <NSObject>@required- (void)makeMoney;@optional- (void)cook;@endWoman
@interface Woman : NSObject<MarryProcotol>
- (void)makeMoney{ NSLog(@"Woman--makeMoney");}- (void)cook{ NSLog(@"Woman--cook");}
Boy
id<MarryProcotol> _protocol;- (void)setProtocol:(id<MarryProcotol>)protocol;- (id<MarryProcotol>)protocol;- (void)playGame;- (void)watchFilm;
- (void)playGame{ NSLog(@"Boy--playGame"); [_protocol makeMoney];}- (void)watchFilm{ NSLog(@"Boy--watchFilm"); [_protocol cook];}- (void)setProtocol:(id<MarryProcotol>)protocol{ _protocol = protocol;}- (id<MarryProcotol>)protocol{ return _protocol;}
下面Woman要位Boy做家务挣钱了
Boy *boy =[[Boy alloc] init]; Woman *woman = [[Woman alloc]init]; [boy setProtocol:woman]; [boy playGame]; [boy watchFilm];七.定义⼀一个block,返回值为BOOL,有两个NSString参数。实现:判
断字符串是否相等。
typedef BOOL (^Block)(NSString*,NSString*);
Block block = ^(NSString *str1,NSString *str2){ if ([str1 isEqualToString:str2]) { return YES; } else return NO; }; if(block(@"sds",@"ddd")) { NSLog(@"Equal"); } else NSLog(@"!Equal");
</pre><span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: 35px;">八.定义⼀一个block,返回值为NSInteger,有两个参数,⼀一个是 NSArray,⼀一个是NSString。实现:判断数组时候包含此字符串,如 果包含,返回字符串的下标,如果不包括,返回-1</span><br style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: 35px;" /><pre code_snippet_id="636147" snippet_file_name="blog_20150404_18_5293409" name="code" class="objc" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(85, 85, 85); font-size: 15px; line-height: 35px;"> __block int i = 0; Block2 block2 = ^(NSString *str,NSArray * arr){ for (i = 0; i < [arr count]; i ++) { NSString * str2 = [arr objectAtIndex:i]; if([str isEqualToString:str2]) return (NSInteger)i; } return (NSInteger)-1; }; NSArray * array = [NSArray arrayWithObjects:@"guo",@"zai", nil]; NSLog(@"%ld",block2(@"zai",array));
@“256”。使⽤用Block语法,进⾏行数组的排序。并输出内容。排序结果:108 123 21 256 33 69
!
提⽰示:sortedArrayWithOptions:usingComparator:
NSArray * arr = [NSArray arrayWithObjects:@"123",@"21",@"33",@"69",@"108",@"256" ,nil]; NSArray * arr2 = [arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) { if((int)[obj1 compare: obj2]>0) return NSOrderedDescending; else if([obj1 compare: obj2]==0) return NSOrderedSame; else return NSOrderedAscending; }]; for (NSString * s in arr2) { NSLog(@"%@",s); }
1 0
- OC经典练习
- OC-观察者练习练习
- 经典练习
- 【练习】经典算法练习
- oc小练习
- OC类的练习
- OC--字典练习(省市区)
- OC NSDictionary 省市区 练习
- OC语言 创建练习
- OC 练习-通讯录
- OC 数据类型 练习
- OC经典代码
- [oc实战练习三]本地推送练习
- OC简单知识的练习
- OC字典练习 -- 中国省市区
- OC一些字符串的练习
- OC-类的创建练习
- oracle 经典练习
- 安装Lamp环境(PHP)
- [leetcode] 43 Multiply Strings(模拟大数乘法)
- HDU 4513 吉哥系列故事 完美队形II (manacher)
- spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" />
- Apache建立虚拟主机
- OC经典练习
- 把Apache和MySQL配置为开启启动
- 记第一次php面试+开发工具大全
- Sublime Text 2 实用快捷键[Mac OS X]
- jQuery学习笔记之DOM操作、事件绑定(2)
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- ListView控件目前最全的资料
- ls命令
- 3层学习 更好的使用json