结构体

NSRange range=NSMakeRange(8,10);从0数第八个元素开始长度为10;

NSString *str=NSStringFormRange(range);

NSLog(@”%@”,str);//打印{8,10}

字符串里的字符范围或者数据里的元素范围

NSPoint代表的是笛卡尔平面中的一个点,也就是坐标(x,y);NSMakePoint()但经常见到CGPoint(8,9);当然应该也有方法CGMakePoint()

NSSize用来表示长度和宽度NSMakeSize()。使用方式和上面的NSRange一样。但经常见到CGSize(8,9);

NSRect和CGRect(CGPoint,CGSize)一样;一个实现两个结构

他们都是结构typedef CGPoint NSPoint;其余一样

NSStringNSString *str=@”String”;NSString* str=[NSString stringWithString:@”string”];这里再次说明调用静态方法不需要释放内存,自己写静态方法也应该如此

Str=[NSString stringWithUTF8String:@”string”];

str=[NSString stringWithFormat:@”asdsd%@,%@”,@”dsfdsfg”,@”sf”];

NSString *str=@”abc”;

str=[str uppercaseString];//转换为大写

str=[str lowercaseString];//转换成小写

str=[str capitalizedString];//首字母大写,其他字母小写

BOOL result=[@”abc”  idEqualToString:@”abc”];

//比较两个字符串,相同是YES(1),不同时NO(0);

NSComparisonResult result2=[@”abc” compare:@”adc”];

//两个字符串内容的比较,ASCLL值的比较

If(result2==NSorderSame)

{

NSLog(@”两个字符串内容相同”);

}else if(result2== NSOrderAscending)

{

“右边大于左边”

}else

{

“左边大于右边”

}

stringByAppendingString的功能是在一个字符串后面增加一个新字符串

substringToIndex主要的功能是截取字符串

-(BOOL)hasPrefix: (NSString *)astring;//是否以aString开头

-(BOOL)hasBuffix: (NSString *)aString;//是否以aString结尾

方法

说明

+(id)stringWithContentsOfFile:path encoding:enc error err

创建一个新字符串并将其设置为path指定的文件的

内容,使用字符编码enc,在err上返回错误

+(id)stringWithContentsOfURL:url

encoding:enc error:err

创建一个新字符串,并将其设置为url所指定的

内容,使用字符编码enc,在err上返回错误

+(id)string

创建一个新的空字符串

-(id)initWithString:nsstring

创建一个新的空字符串,并将其内容设

置设置为nsstring内容

-(id)initWithContentsOfFile:path encoding:enc error:err

将字符串设置为path指定的文件的内容

-(id)initWithContentsOfURL:url

encoding:enc error:err

将字符串设置为url所指定的内容,使用

enc字符编码,在err上返回错误

-(UNSIgned int)length

返回字符串中的字符数目

-(unichar)characterAtIndex:i

返回索引i虽在的Unicode字符

-(NSString *)substringFromIndex:i

返回从i开始到结尾的子字符串

-(NSString *)substringWithRange:range

根据指定范围返回子字符串

-(NSString *)substribgToIndex:i

返回从字符串开始位置到i的子字符串

-(NSComparator *)caseInsensitiveCompare:nsstring

比较两个字符串(忽略大小写)

-(NSComparator *)Compare:nsstring

比较两个字符串的大小

-(BOOL)hasPrefix:nsstring

测试字符串是否以nsstring开始

-(BOOL)hasSuffix:nsstring

测试字符串是否以nsstring结尾

-(BOOL)isEqualToString:nsstring

测试两个字符串是否相等

-(NSString *)caoitalizedString

返回字符串,串中的每个单词的首字母大写,

其余字母小写

-(NSString *)lowercaseString

返回转换为小写的字符串

-(NSString)uppercaseString

返回转换为大写的字符串

-(const char *)UTF8String

返回UTF8编码格式的字符串

-(double)doubleValue

返回转换为double类型的字符串

-(float)floatValue

返回转换为float类型的字符串

-(NSInteger)integerValue

返回转换为NSInteger类型的字符串

-(int)intValue

返回转换为int类型的字符串

NSString* str=@”1,2,3,4”;

NSArray *array=[str  componentsSeparatedByString:@”,”];//以,为分隔符把字符串分成数组

NSLog(@”%@”,array);//默认的toString方法会把array数组打印出来

NSMutableArray *compents=[NSMutableArray array];

[components  addObject:@”Users”];

[components  addObject:@”MY”];

[components  addObject:@”Desktopd”]//数组中添加元素

NSString*  path=[NSString  pathWithComponents:components];

//将数组中的所有字符串拼接成一个路径//打印显示Users/MY/Desktopd

NSArray *cmps=[path pathComponents];//将路径分割开

NSLog(@”%@”,cmps);

{

Users,

MY,

Desktopd

}//字符串默认打印出来就是这样

NSString * str=@”12”;

Int a=[str  intValue];//字符串转换

字符串操作比较多,这里不一一解释,用到再说

NSMutableString可变字符串

NSMutableString  *str=[[NSMutableString  alloc]  initWithCapacity:10];//分配10个存储空间

[str  setString:@”1234”];//设置字符串内容

[str  appendString:@”567”];//拼接字符串

[str appendFormat:@”age is %i and height is %.2f”,27,1.55f];//拼接字符串并且按格式来

NSRange range=[str  rangeOfString:@”height”];//替换字符串

//NSRange range=NSMakeRange(7,3);//效果一样

[str  replaceCharactersInRange:range  withString:@”no”];

[str insertString:@”abc”  atIndex:2];//插入字符串

NSLog(@”%@”,str);//12abc3456age is 27 and no is 1.55

[str release];//释放内存

读取文本信息:

NSError *error;

NSString * path=@”/Users/apple/Desktop/test.txt”;//路径

NSString*str1=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&errorl];//路径、编码、错误

//NSString*str1=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nill];//路径、编码、错误

If(error==nil)

{

NSLog(@”读取文件成功:%@”,str1);

}

else

{

NSLog(@”读取文件失败:%@”,error);

}

//NSLog(@”%@”,str1);//打印除文本内容

另一种读取信息:

NSURL *url=[NSURL URLWithString:@”file://Users/apple/Desktop/test.txt”];//读取网页也可以@“www.baidu.com”

NSString*str1=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&errorl];//路径、编码、错误

写入文件

NSString *str=@”abc”;

NSString *path=@”/Users/apple/Desktop/test.txt”;

NSError *error;

[str writeToFile:path atomically:YES  ecoding:NSUTF8StringEncoding Error:&error];

//YES代表是原子性操作,也就是会创建一个中间的缓冲临时变量

NSArray数组,OC中的数组仅支持OC对象,也就是说没有intfloatstructenumchar

NSArray *array=[NSArray  array];//创建一个空的数组

array=[NSArray  arrayWithObject:@”123”];//创建有一个元素的数组

array=[[NSArray arrayWithObjects:@”a”,@”b”,@”c”,nill ]];//创建有多个元素的数组。nil数组的结束标示符

int count=[array  count];//数组的长度

[array  containsObject:@”a”];//是否包含字符串a

[array  lastObject];//最后一个元素c

[array  objectAtIndex:1];//第一个元素

OC中关于插入,提取,截取元素大部分都是从0开始

当把一个对象塞进数组中时,这个对象的计数器会加1,也就是说数组会对它做一次retain操作。不过不用担心,数组被销毁时,会对内部的所有元素都做一次release操作。谁retain谁release;

NSArray  *array=[NSArray  arrayWithObjects:@”1”,@”2”,@”3”,nill ];

NSEnumerator *enumerator=[array  objectEnumerator];//获取数组的迭代器

NSEnumerator *enumerator=[array  objectEnumerator];//反序迭代器(从尾部开始遍历元素)

Id obj=nill;

NSArray *array2=[enumerator  allObjects];//获取所有元素

While(obj==[enumerator  nextObject])

{

NSLog(@”obj=%@”,obj);//获取下一个元素

}

NSObject

Id stu=[[tudent  alloc] init] autorelease]

If([stu isKindOfClass: [Person  class]])//判断是否是某个类或者子类

反射:将字符串转换成类

NSString *str=@”Person”;

Class  class=NSClassFormString(str);//字符串转换成类,这句已经转换成功

NSString *name=NSStringFormClass([Person  class]);//从类名转换成字符串

方法的反射:

NSString  *method=@”test”;

SEL selector=NSSelectorFormString(method);//反射,转换

[person  performSelector:selectort];//调用方法

Copy的用法,copy出一个新的对象,修改新的对象不会影响到旧的对象copy相当于retain,计数器加1,mutableCopy不加1

NSString *string=[[NSString alloc] initWithFormat:@”age is %i”,10];

NSString *str=[string copy];//string的计数器是2

NSString*str=[string mutableCopy];//string的计数器是1;

Objective-C常用类型、对象、方法的更多相关文章

  1. Document-对象属性和常用的对象方法

    Document-对象属性和常用的对象方法 对象属性 document.title                           //设置文档标题等价于HTML的title标签 document ...

  2. 【跟着子迟品 underscore】常用类型判断以及一些有用的工具方法

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  3. Underscore.js 常用类型判断以及一些有用的工具方法

    1. 常用类型判断以及一些有用的工具方法 underscore.js 中一些 JavaScript 常用类型检查方法,以及一些工具类的判断方法. 首先我们先来谈一谈数组类型的判断.先贴出我自己封装好的 ...

  4. [PowerShell] 快速入门, 基本语法, 常用类型, 函数, .NET 互操作

    PowerShell 快速入门 开始之前, 我们认定你已经有一定的编程基础, 熟悉 .NET 中的类型与对象. 此文章对于 .NET 开发者来说更简单哦! 在 PowerShell 中, 几乎一切都是 ...

  5. 第1节 Scala基础语法:5、6、7、8、基础-申明变量和常用类型,表达式,循环,定义方法和函数

    4.    Scala基础 4.1.   声明变量 package cn.itcast.scala object VariableDemo {   def main(args: Array[Strin ...

  6. ES6 对象定义简写及常用的扩展方法

    1.ES6 对象定义简写 es6提供了对象定义里的属性,方法简写方式: 假如属性和变量名一样,可以省略,包括定义对象方法function也可以省略 <script type="text ...

  7. 常用的Date对象和Math对象方法

    Date对象方法: 当前用户本地时间 let time = new Date(); 获取整数年 console.log(time.getFullYear()); 获取当前月(月份要加1) consol ...

  8. python—— 文件的打开模式和文件对象方法 & os、os.path 模块中关于文件、目录常用的函数使用方法

    引用自“鱼c工作室”     文件的打开模式和文件对象方法  : https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&ext ...

  9. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  10. JavaScript中常用的几种类型检测方法

    javascript中类型检测方法有很多: typeof instanceof Object.prototype.toString constructor duck type 1.typeof 最常见 ...

随机推荐

  1. 小白日记12:kali渗透测试之服务扫描(二)-SMB扫描

    SMB扫描 Server Message Block 协议.与其他标准的TCP/IP协议不同,SMB协议是一种复杂的协议,因为随着Windows计算机的开发,越来越多的功能被加入到协议中去了,很难区分 ...

  2. jQuery的动画效果

    jQuery 是一个 JavaScript 库.jQuery 库可以通过一行简单的标记被添加到网页中. <script type="text/javascript" src= ...

  3. memcached linux / win32 1.4.13

    memcached-win32-1.4.13 点击下载 http://pan.baidu.com/s/1kTMABaf memcached -d install (安装为windows service ...

  4. Linux 修改swap虚拟内存大小

          swap是内存的交换区:换句话说,如果内存不够用了,那么系统会在硬盘上存储一些内存中不常用的数据,之后将这部分数据在存储中析构掉:这样内存就又有剩余空间可以运行东东啦,这个过程也就是所谓的 ...

  5. Mac 10.9 自带apache2虚拟目录设置

    花了好几天时间做这个事,终于成功,把正确的做法记录一下. 如果是第一次使用apache,可以先执行sudo apachectl start,然后在浏览器里打开http://localhost看看效果, ...

  6. [改善Java代码]频繁插入和删除时使用LinkedList

    一.分析 前面有文章分析了列表的表里方式,也就是“读”的操作.本文将介绍表的“写”操作:即插入.删除.修改动作. 二.场景 1.插入元素 列表中我们使用最多的是ArrayList,下面看看他的插入(a ...

  7. 自己改写的asp.net MVC EF Respoistory 仓储模式

    之前改写网上收集的Respoistory 模式感觉很多地方都是不可取的,这里经过这段时间的充电重新改写一版,当然注释已加,还有不懂的,可以留言我. 首先还是拿出IRespoistory的接口层代码 u ...

  8. 一些C++内容的总结(2013.10.17)

    1.using namespace std;使用的是C++标准库当中的一些变量,比如cout,cin等.但是using namespace std作用域只对当前文件内作用,所以using namesp ...

  9. DOS批处理命令-几个固定名称的变量

    批处理中有一些变量的变量名称是固定的,具有特定的意义,接下来,我们来看看这些有特定意义的变量到底有什么意义. 1.%CD%   当前路径的路径名[盘符 + 路径]    - 現在のディレクトリ文字列に ...

  10. Aliyun OSS SDK 异步分块上传导致应用异常退出

    问题描述: 使用Aliyun OSS SDK的BeginUploadPart/EndUploadPart执行异步分块上传操作,程序出现错误并异常退出! 原因分析: Using .NET Framewo ...