您的位置:首页 > 移动开发 > Objective-C

【Objective-C学习记录】第二十二天

2015-12-23 22:34 375 查看
不可变字符串操作:

1.initWithFormat:。初始化操作,其中直接赋值的效果与该方法一样,例如:

NSString *string1 = [[NSString alloc] initWithFormat:@"iOS"];
NSString *string2 = @"iOS";


但需要注意的是,第二种方法声明的是常量字符串,位于内存里的常量区。

2.length。获取字符串长度,length的定义是

@property (readonly) NSUInteger length;


通过调用属性的方式即可:[string length]或string.length

3.isEqualToString:。判断两个字符串的内容是否相等

4.compare:。比较两个字符串的大小,可以看一下该方法的定义:

- (NSComparisonResult)compare:(NSString *)string;


可以发现该方法有一个返回值,查看该返回值的定义:

typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};


返回值为枚举类型,其中-1表示升序,即前面的字符串比后面的字符串小,以此类推。

5.获取子串:

A.substringFromIndex:。后面跟下标,即从指定的下标开始截取字符串。

B.substringToIndex:。后面跟下标,即从头开始截取到指定的下标。

以上两个方法,一个从中间到结尾,一个从开头到中间。

C.substringWithRange:。后面写这样类型的一个参数:(NSRange)range,查看该类型的定义:

typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;


该类型是一个结构体,通过NSMakeRange方法可以传入正确的参数,分别表示开始位置和长度。

6.stringByAppendingString:。拼接字符串,将参数里的字符串拼接到前面,要注意的是,该方法会将拼接后的字符串作为返回值,即不会对原有的两个字符串进行任何操作。

7.替换字符串:

A.stringByReplacingCharactersInRange:withString:。与前面获取子串的方法类似,给定一个NSRange范围,从后面的字符串替换,即使后面的字符串比前面长也可以正常进行。

B.stringByReplacingOccurrencesOfString:withString:。该方法会根据第一个参数对字符串进行匹配,用第二个参数将匹配到的全部替换。

8.类型转换

intValue charValue 依次类推

9.大小写

A.uppercaseString。全部转大写

B.lowercaseString。全部转小写

C.capitalizedString。每个单词的首字母大写

10.字符串检验

A.hasPrefix:。检测字符串是否以参数开头,返回值是BOOL

B.hasSuffix:。检测字符串是否以参数结尾,返回值是BOOL

可变字符串操作:

1.initWithCapacity:。可变字符串初始化,参数为分配的空间,因为可变字符串的大小不是固定的,所以根据实际情况给值,没有规定可以用0填充。

2.setString:。用传入的参数设置字符串的值,会将原有的内容覆盖掉。

3.appendFormat:。拼接字符串,与stringByAppendString:同理

4.deleteCharactersInRange:。根据给定的NSRange删除字符串

5.insertString: atIndex:。在指定的下标插入字符串,第一个参数是插入的字符串,第二个参数是插入的下标

6.replaceCharactersInRange:withString:。替换指定范围内的字符串,第一个参数是NSRange类型的范围,第二个参数是需要的字符串

值对象:

NSNumber

因为OC中的数组可以存储不同类型的数据,但是这些数据必须是对象,所以需要通过值对象来存储基本数据类型。语法:NSNumber *num = [NSNumber numberWithInt:4];

后面的方法可以根据具体参数类型的进行更改。

也可以将NSNumber *类型的对象还原成 基本数据类型

[num intValue]

值对象也可以通过compare:方法比较大小

NSValue

NSValue与NSNumber相比,不仅可以转换基本数据类型,还能转换结构体和对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: