LHF Objective-C语法(10)常用类型

本文深入探讨了iOS开发中的Swift编程语言,包括基础语法、高级特性、常见问题解决及最佳实践,帮助开发者提高开发效率并创建高质量的应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、字符串

//======================================================================== /*字符串*/ NSString *s1 = [NSString stringWithFormat:@"You height is %d weight is %d",168,68]; NSLog(s1); NSLog(@"The str length is %lu",[s1 length]); NSString *s2 = @"You Height Is 168 weight is 68"; if([s2 isEqualToString:s1]==YES){ NSLog(@"equal yes"); }else{ NSLog(@"equal no"); } // 详细比较 NSComparisonResult cr = [s2 compare:s1 options:NSCaseInsensitiveSearch|NSNumericSearch]; if(cr == NSOrderedSame){ NSLog(@"Compare YES"); }else{ NSLog(@"Compare NO"); } //判断前缀 if([s1 hasPrefix:@"You"]){ NSLog(@"hasPrefix YES"); }else{ NSLog(@"hasPrefix NO"); } //判断s1中是否含有字符串height NSRange range = [s1 rangeOfString:@"height"]; if(!(range.location ==NSNotFound)){ NSLog(@"The \"height\" is located in %lu",range.location); NSLog(@"The \"height\" length is %lu",range.length); } //======================================================================== //可变字符串 NSMutableString *ms1 = [NSMutableString stringWithCapacity:100]; [ms1 appendString:@"You height is "]; [ms1 appendFormat:@"%d weight is %d",168,68]; NSLog(@"%@",ms1); NSRange r = [ms1 rangeOfString:@"weight is 68"]; [ms1 deleteCharactersInRange:r]; NSLog(@"%@",ms1); [pool release]; return 0;

2、数组

      不能存储基本数据类型,enum struct nil 只能存储对象 

//数组 NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three",nil]; int count = [array count]; for(int i=0;i<count;i++){ NSLog(@"%@",[array objectAtIndex:i]); } NSString *s = @"iphone,Android,windows7"; array = [s componentsSeparatedByString:@","]; s = [array componentsJoinedByString:@" "]; NSLog(s); //可变数组 NSMutableArray *mArray = [NSMutableArray arrayWithCapacity:10]; [mArray addObject:@"Apple"]; [mArray addObject:@"Google"]; [mArray addObject:@"MicroSoft"]; [mArray removeObjectAtIndex:2]; s = [mArray componentsJoinedByString:@","]; NSLog(s); //数组的迭代器 NSEnumerator *e = [mArray objectEnumerator]; id obj; while(obj=[e nextObject]){ NSLog(@"---%@---",obj); } for(NSString *ms in mArray){ NSLog(@"===%@===",ms); }
3、字典

//字典 NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"Apple", @"A",@"Google",@"G",nil]; NSLog(@"%@",[dic objectForKey:@"A"]); NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithCapacity:10]; [mDic setObject:@"Apple" forKey:@"A"]; [mDic setObject:@"Google" forKey:@"G"]; [mDic setObject:@"Window7" forKey:@"W"]; [mDic removeObjectForKey:@"w"]; for(id key in mDic){ NSLog(@"%@:%@",key,[mDic objectForKey:key]); } NSEnumerator *keyEnum = [mDic keyEnumerator]; id key; while(key=[keyEnum nextObject]){ NSLog(@"---%@:%@---",key,[mDic objectForKey:key]); }
4、哈希Set

#import <Foundation/Foundation.h> @interface Person : NSObject{ int pid; NSString *name; } -(void) setPid:(int)pid; -(void) setName:(NSString*) name; -(id) pid; -(NSString*) name; @end @implementation Person -(void) setPid:(int)p{ pid = p; } -(void) setName:(NSString*) n{ [n retain]; [name release]; name = n; } -(id) pid{ return pid; } -(NSString*) name{ return name; } -(NSUInteger)hash{ return pid+[name hash]; } -(BOOL)isEqual:(id)p{ if(pid==[p pid] && [name isEqualToString:[p name]]){ return YES; }else{ return NO; } } -(void) dealloc{ [name release]; [super dealloc]; } @end

//哈希Set Person *p1 = [[Person alloc] init]; [p1 setPid:1]; [p1 setName:@"Name1"]; Person *p2 = [[Person alloc] init]; [p2 setPid:1]; [p2 setName:@"Name1"]; Person *p3 = [[Person alloc] init]; [p3 setPid:3]; [p3 setName:@"Name3"]; NSSet *set = [NSSet setWithObjects:p1,p2,p3,nil]; NSEnumerator *e = [set objectEnumerator]; Person *p; while (p=[e nextObject]) { NSLog(@"%d",[p pid]); }p1 和 p2实例相同,输出两个person的pid

5、封装类

NSNumber *n1 = [NSNumber numberWithChar:'A']; NSNumber *n2 = [NSNumber numberWithInt:100]; NSNumber *n3 = [NSNumber numberWithFloat:99.9F]; NSNumber *n4 = [NSNumber numberWithBool:YES]; NSLog(@"%d",[n4 intValue]);
6、日期类型

    //获取当前时间

      NSDate *date = [NSDate date];

    //格式化一个字符串为日期

      NSCalendarDate *date2 = [NSCalendarDate  dateWithString:@"26 Apr 2008" calendarFormat:@"%d %b %Y"];

    //当前时间的前一天时间

      NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];

7、数据缓冲区

NSData(NSMutableData)类型来实现缓冲区,类似与Java的字节数组,用于存储二进制的数据类型

const char *cs = "He is very height"; NSData *data = [NSData dataWithBytes:cs length:strlen(cs)+1]; NSLog(@"%@",data);

转载于:https://www.cnblogs.com/landebug/archive/2012/02/14/2416668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值