从头开始-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、sqlServer、hsql、oracle、db2各数据库支持的字段类型与最大精度
- 用Jfree实现条形柱状图表,java代码实现
用Jfree实现条形柱状图表,java代码实现.可经经常使用于报表的制作,代码自己主动生成后能够自由查看.能够自由配置图表的各个属性,用来达到自己的要求和目的 package test1; impor ...
- linux下SSH远程连接服务慢解决方案
1.适用命令及方案如下:[远程连接及执行命令]ssh -p22root@10.0.0.19ssh -p22 root@10.0.0.19 /sbin/ifconfig[远程拷贝:推送及拉取]scp - ...
- win7 绿色版MySQL安装与配置
操作步骤: 一.安装MySQL数据库 1.下载MySQL-5.6.17-winx64.zip文件.2.解压到指定目录,本例为D:\mysql-5.6.17-winx64.3.修改配置文件,my-def ...
- override和new的区别
override 1. override是派生类用来重写基类中方法的: 2. override不能重写非虚方法和静态方法: 3. override只能重写用virtual.abstract.overr ...
- [jquery] 图片热区随图片大小自由缩放
在图片上直接画出带超级链接热区元素map和area相信大家并不陌生,Dreamweaver等网页制作软件都有直接在图片上绘制带超级链接的热区工具,但是直接绘制的热区是不能随着图片自适应放大和缩小的,现 ...
- struts2 <s:iterator> 遍历方法
1.MapAction.java import java.util.ArrayList; import java.util.HashMap; import java.util.List; ...
- 写一个Windows上的守护进程(2)单例
写一个Windows上的守护进程(2)单例 上一篇的日志类的实现里有个这: class Singleton<CLoggerImpl> 看名字便知其意--单例.这是一个单例模板类. 一个进程 ...
- 基于excel9.h的excel处理
基于excel9.h的excel处理; #include "excel9.h" #include <iostream> using namespace std; cla ...
- 深入研究B树索引(一)
摘要:本文对B树索引的结构.内部管理等方面做了一个全面的介绍.同时深入探讨了一些与B树索引有关的广为流传的说法,比如删除记录对索引的影响,定期重建索引能解决许多性能问题等. 1.B树索引的相关概念 索 ...