ObjectC语言基础2—Foundation、结构体、字符串、集合



一、结构体

1、CGRect,CGPoint,CGSize,NSRange

[java]  view plai
  1. //结构体
  2. NSRange r = NSMakeRange(locatin,length);
  3. NSString *str = @“i love panda”;
  4. //如果找不到length = 0;loaction = NSNotFound;整型常量值-1
  5. //字符串在字符串中的位置
  6. NSRange r = [str rangeOfString:@“love”];

  7. CGPoint p; //控件在屏幕上的位置 CGPointMake();
  8. CGRect  r; //控件大小和位置
  9. CGSize s; //控件的的大小

  10. //三种方法初始化
  11. r = CGRectMake(0, 0, 100, 50);
  12. r = {CGPointZero, {100, 50}};
  13. r = {p, s};

  14. //CoreGraphics框架中的方法简介

  15. //表示原点
  16. CGPointZero
  17. //表示宽高0
  18. CGSizeZero
  19. //原点宽高
  20. CGRectZero
  21. //将结构体转为字符串
  22. NSString * strContent = NSStingFromPoint(CGPoint);

  23. //判断三种结构体是否相同
  24. BOOL b = CGPointEquelToPoint(CGPoint, CGPoint);
  25. BOOL b = CGSizeEquelToSize(CGPoint, CGPoint);
  26. Bool b = CGRectEqualToRect(CGRect,CGRect);
  27. //判断在一个范围内是否包含一个点
  28. BOOL b = CGRectContainsPoint(CGRect, CGPoint);

如何快速打印一个结构体,先将结构转为字符串,然后打印。NSStringFromPoint();等类似方法在c语言中结构题用大括号{}。

二、字符串

1、不可变字符串的创建的几种方法

[java]  view plai
  1. //字符串的创建
  2. NSString *str1 = @“i love panda”;
  3. NSString *str2 = [NSString StringWithFormate:@“i am %d”, 10];//将字符串转为数字。
  4. NSStirng *str3 = [NSString alloc] initWithFormate:@“i am %d”, 10];
  5. //将c语言字符串,转成OC字符串,参数字符串无序加@,因为是c语言字符串
  6. NSString *str4 = [[NSString alloc] initWithUTFString:“i love Panda”];

  7. //将OC语言字符串转成c语言字符串
  8. const char *c = [str UTF8String];
  9. memcpy(字符数组, [strUTF8String], length);转为字符数组

  10. //传文件绝对路径,从文件中取出字符串NSUTF8StringEncoding
  11. NSString *str5 = [[NSString alloc] initWithContentOFFile:@“/文件绝对路径” encoding:NSUTF8StringEncoding error:nil];
  12. NSRange range = [str rangfoString:@“love”];返回字符串在字符串中的范围,找不到length等于=0,location= NSNOFOUND
  13. //资源路径URL
  14. //协议头://路径 
  15. //file://路径  本地资源
  16. //ftp://路径   ftp服务器资源
  17. //http://weibo.com/a.png   网络资源

  18. //会吧整个文件读取成一行,换行字符也会读出来输出
  19. NSURL *url = [[NSURL alloc] initWithString:@“file:///apple/a.txt”];//注意三个/
  20. //这个方法已经说明了文件类型是file就不用传file://了
  21. NSURL *url = [NSURL fileURLWithPath:@”//apple/a.txt”];
  22. NString *str6 = [[NSString alloc] initWithContentOFURL:资源路径 encoding:NSUTF8StringEncoding error:nil]

  23. //字符串转化成整形 int a = [str inValue];
  24. //转化成包装类型 NSNumber *d = [NSNumber numberWithInt:int];

  25. //写内容到文件
  26. [@“wirte to \n file” wirteToFile:@“/apple/a.txt” automically:YES encoding:NSUTF8StringEncoding error:nil];
  27. [@“wirte to \n URL” wirteToURL:资源路径 automically:YES encoding:NSUTF8StringEncoding error:nil];

2、NSMutableString可变字符串
它是NSSting的子类,所以以上方法NSMutalbeString 都能用。
[java]  view plai
  1. //append
  2. //字符串的拼接,下面的代码会自动发字符串的内容拼接到可辨字符串的后面,前提是str是可变字符串
  3. [str appendString:@“i love panda”];

  4. //delete
  5. //删除某一范围内的内容
  6. //一般要配合字符串的RangeofString才能做到精确删除
  7. NSRange r = [str RangeOfString:@“love”];//搜索字符串
  8. [str deleteCharactersInRange:r];

  9. substringWithRange//截取某一范围字符串

  10. //insert
  11. [str insertString:@"" atIndex:1];
  12. //replace某个范围内的所有字符串,有两个方法
  13. replaceCharactersInRange:NSRange withString:@""//把这个范围内的字符串,无论多长,替换成后面的字符串。
  14. [strreplaceOccurrencesOfString:@"do"withString:@"fuck"options:NSCaseInsensitiveSearchrange:rang2];//把某一范围内重复的字符串替换掉
  15. 把两个字符串拼接返回一个新的字符串
  16. NSString *str = [s1 StringByAppendingString:@“i am"];


三、集合类

1、NSArray只能翻oc对象,不能放基本数据类型,为不可变数组。

[java]  view plai
  1. //不可变数组,你在定义它的时候,没有存放任何OC对象,那么它永远是空数组。
  2. NSArray *array = [NSArray array];
  3. //数组最后的nil是数组的结束标记,并且oc数组不能存放空指针
  4. NSArray *array = [NSArray arrayWithObjects:@“2”, @“2”,nil];
  5. NSArray *array = @[“”,””,””];//C语言数组用的是大括{}

  6. //取得数组里面对象有两种方法
  7. [array objectAtIndex:i];//面相对象方法
  8. array[i];//编译器特性

  9. //快速遍历数组
  10. for(id obj in Array){
  11. //缺点不知道第几次,他没循环一次,自动会复值给obj
  12. NSLog(“%@“, obj);
  13. //有一个方法是找出数组元素在数组中的位置
  14. NSUInteger i = [array indexOfObject:obj];
  15. }
  16. [array enumerateObjectsUseingBlock:^(id obj, NSUInteger idx,BOOL *stop){
  17. //obj就是每次取出来的对象
  18. //如果想停止,则调用*stop = YES;stop是指针,*stop才是变量值。
  19. }]
  20. NSSoredDescriptor sortDescriptroWithKey:对象的成员变量 asceding:升序降序。
  21. array sortedArrayUsingDescritptor:array];


2、判断一个路径是文件还是文件夹
[java]  view plai
  1. //单例模式,整个文件系统,公用一个文件管理
  2. NSFileManger *mgr = [NSFileManager deaultManger];
  3. //判断文件的扩展名,如果是.m或.h文件才计算
  4. NSStting *str =[path pathExtension];
  5. //判读一个路径里面试文件还是文件夹
  6. BOOL dir = NO;
  7. //程序执行完后,就会改变bool的值,返回值是传的路径是否存在
  8. BOOL ifExist =[mgr filesExistAtPath:path isDirectory:*dir];
  9. 如果是陌路dir==YES,然后取得文件夹里的所有文件
  10. NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];

3、NSMutableArray
[java]  view plai
  1. addObject//添加对象方法
  2. removeAllObject//删除所有对象
  3. removeObject:Object//删除指定对象
  4. removeObjectAtIndex:Int//删除指定位置的对象
  5. 快速创建可变数组,不能@[];返回的是不可变数组。

4、 NSSet NSMutableSet
[java]  view plai
  1. setWithObject://类方法添加对象构造一个不可变set
  2. anyObject//随即访问,没有顺序
  3. addObject
  4. removeObject
  5. set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。


4、NSDictionary NSMutableDictionary

[java]  view plai
  1. //字典也是无序的,当设置重复key值,则覆盖
  2. NSDictionary *dic = [NSDictionary dictionatyWithObject:  forkey:];
  3. NSDictionary *dic = [NSDictionary dictionaryWithObjects:NSArray forkeys:NSArray];
  4. NSDictionary *dic = @{key : object,};
  5. dic[@“”];
  6. [dic objectForKey:@“”]
  7. //遍历字典,两中方法allKeys取出所有的key值装在一个数组中,之后循环取值。
  8. //遍历
  9. enumerateKeysAndObjectsUseingBlock:^(id, id obj, BOOL *stop)

  //数组不能直接复制,需要使用函数拷贝,如果使用指针数组可以直接赋值
                 /*temp=p[i];
                 p[i]=p[j];
                 p[j]=temp;*/
                 strcpy (temp, p[i]);
                 strcpy (p[i], p[j]);
                 strcpy (p[j], temp)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。该系统主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者,包含项目源码、数据库脚本、项目说明等,有论文参考,可以直接作为毕设使用。 后台框架采用SpringBoot,数据库使用MySQL,开发环境为JDK、IDEA、Tomcat。项目经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。 该系统的功能主要包括商品管理、订单管理、用户管理等模块。在商品管理模块中,可以添加、修改、删除商品信息;在订单管理模块中,可以查看订单详情、处理订单状态;在用户管理模块中,可以注册、登录、修改个人信息等。此外,系统还提供了数据统计功能,可以对销售数据进行统计和分析。 技术实现方面,前端采用Vue框架进行开发,后端使用SpringBoot框架搭建服务端应用。数据库采用MySQL进行数据存储和管理。整个系统通过前后端分离的方式实现,提高了系统的可维护性和可扩展性。同时,系统还采用了一些流行的技术和工具,如MyBatis、JPA等进行数据访问和操作,以及Maven进行项目管理和构建。 总之,本系统是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。系统经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值