从头开始-07.Foundation框架常用结构体
一、Foundation框架常用结构体NSRange\CGRange、NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 的使用
1. 基本使用:
//NSRange的使用
NSRange r1 = NSMakeRange(, ); //第一个参数为.location 第二个参数为.length NSString *str = @"学习OC"; NSRange range = [str rangeOfString:@"学习"]; //查找某个字符串在str字符串中的位置和长度 NSLog(@"loc = %ld, len = %ld",range.location, range.length); NSRange range1 = [str rangeOfString:@"找不到"]; //查找某个字符串在str字符串中的位置和长度 NSLog(@"loc = %d, len = %ld",range1.location, range1.length); //如果找不到,location 的返回值为-1,要用%d输出location 的值才会有负号,默认的%ld是没有符号 //CGPoint的使用
CGPoint point1 = NSMakePoint(, );
NSPoint point2 = CGPointMake(, ); //平常经常使用这种方法定义一个CGPoint 对象 //NSSzie的使用
NSSize size1 = CGSizeMake(, );
CGSize size2 = NSMakeSize(, ); //CGRect 的使用
CGRect rect1 = CGRectMake(, , , );
CGRect rect2 = {point1, size1}; //打印结构体的方法
NSString *s = NSStringFromPoint(point1);
NSLog(@"%@",s); NSString *s1 = NSStringFromRect(rect1);
NSLog(@"%@",s1);
2. 相关的其他方法
//判断结构体NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 包含的值是否相同的方法
CGPointEqualToPoint(point1, point2);
CGRectEqualToRect(rect1, rect2);
CGRectEqualToRect(rect1, rect2); //判断某个rect是否包含某个点,必须引用框架CoreGraphic.framework,这样才能调用 CGRectContainsPoint方法
BOOL b1 = CGRectContainsPoint(rect1, point1);
NSLog(@"%d",b1);
return ;
二、Foundation框架常用类
1.NSString
//创建字符串
NSString *s1 = @"test";
NSString *s2 = [[NSString alloc]initWithFormat:@"test is %c",'c']; //此方法可以将c语言字符串转化为OC字符串
NSString *s3 = [[NSString alloc]initWithUTF8String:"name"]; //OC字符串转化为C语言字符串
const char *cs = [s3 UTF8String]; NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
[NSString stringWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil]; NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/lpmac/Desktop/my.text"];
//类方法
[NSURL URLWithString:@"file:///Users/lpmac/Desktop/my.text"]; NSString *s5 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
//类方法
[NSString stringWithContentsOfFile:@"file:///Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",s5);
2.NSMutableString的使用(动态字符串)
NSMutableString * mutableString1 = [NSMutableString stringWithFormat:@"test"];
//拼接字符串
[mutableString1 appendString:@"append str"]; //删除
NSRange range = [mutableString1 rangeOfString:@"test"];
[mutableString1 deleteCharactersInRange:range];
NSLog(@"%@",mutableString1);
3.NSArray 和 NSMutableArray
//数组的创建
NSArray *array = [NSArray arrayWithObject:@"test"];
NSArray *array1 = [NSArray arrayWithObjects:@"test1",@"test2",@"test2",nil];
NSArray *array2 = @[@"test1",@"test2",@"test2"]; //提倡快速写法 //数组访问
[array1 objectAtIndex:];
array1[]; //提倡 //数组的遍历
for (int i=; i<array.count; i++) {
NSLog(@"%@",array[i]);
}
//快速遍历
for (id obj in array2) { NSUInteger loc = [array2 indexOfObject:obj];
NSLog(@"%@,%ld",obj,loc); } [array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%@,%ld",obj,idx);
if (idx == ) {
*stop = YES;
}
}];
NSMutableArray 是动态数组不可使用语法@[] 来初始化
从头开始-07.Foundation框架常用结构体的更多相关文章
- 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写
一.V4L2框架主要结构体分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括两层 ...
- 13.Object-C--浅谈Foundation框架常用的结构体
------- android培训.iOS培训.期待与您交流! ---------- 昨天学习了Foundation框架中常用的结构体,下面我简单的总结一下,如果错误麻烦请留言指正,谢谢! Found ...
- iOS Foundation框架简介 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...
- iOS Foundation框架 -1.常用结构体的用法和输出
1.安装Xcode工具后会自带开发中常用的框架,存放的地址路径是: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.plat ...
- [OC Foundation框架 - 1] 常用结构体
底层封装是使用了typedef定义的结构体 typedef struct _NSString{ xxx xxx } NSString; 1. NSRange 结构体 #注意结构体不是对象 3种定义 ...
- Foudation框架之一些常用结构体和常用类
表示范围作用的结构体:NSRange: 有三种方式创建新的NSRange: 1.NSRange range: range.location = 17; ...
- 八、Foundation -常用结构体
一.NSRange 在foundation/NSRange.h中对NSRange的定义 typedef struct _NSRange{ NSUInteger location; NSUInteger ...
- Objective-C:Foundation框架-常用类-NSString全解
Foundation框架中常用的类有字符串.集合.字典等,这里介绍字符串NSString.本文分别介绍了NSString的创建.从文件里读取NSString字符串.通过函数改变外部的NSString变 ...
- Objective-C:Foundation框架-常用类-NSValue
NSNumber是NSValue的子类,前者只能包装数字,后者可以包装任意值.NSArray.NSDictionary只能存储OC对象,不能存储结构体.因此,如果想要在NSArray.NSDictio ...
随机推荐
- mysql的基本使用方法
创建数据库:create database [if not exist]name [character set 编码方式 collate 校对规则] 显示库的创建信息:show create data ...
- sun.misc.BASE64Encoder找不到包,解决方法
右键项目->属性->java bulid path->jre System Library->access rules->resolution选择accessible,以 ...
- 用数据说话,外贸B2C产品选择(上篇)-热门搜索法
当选择了外贸这条路,那就是选择了跟外国人做生意.那面对全球这么大的市场究竟选什么样的产品才干脱颖而出?什么样的产品才是全球卖家喜欢的呢?什么样的产品才干让自己財源滚滚?我想这都是全部刚開始外贸创业的人 ...
- Android应用程序中的多个Activity的显示创建和调用
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTkzNjE0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- WAS下获取包路径下所有类
最近做javaweb项目的混淆工作,用到proguard,该工具混淆.jar文件比较方便,故把所有项目代码和配置文件打成jar包, 生成的jar包经过proguard处理后,再次打包(解决progua ...
- DataSet、DataTable、DataRow区别
DataSet 表示数据在内存中的缓存. 属性 Tables 获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据 ...
- .NET MySQL的参数化查询
MySqlConnection conn = new MySqlConnection(SqlConnnectString); MySqlCommand cmd = new MySqlCommand(& ...
- jQuery中$.getJSON的返回值问题
在使用$.getJSON获得数据库的返回值后,想将该值return传给其他函数.结果遇到问题. $.getJSON(url, data, function(result) { return resul ...
- servlet 之 返回json数据并显示
//实体类import java.util.ArrayList; public class ObjectType { private String type; private ArrayList< ...
- bootstrap之 Badge 角标
添加 .am-badge class 到 <div> 或者 <span> 元素. 默认样式 <span class="am-badge"> ...