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

不可变字符串操作:

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

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

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

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

1 @property (readonly) NSUInteger length;

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

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

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

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

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

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

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

5.获取子串:

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

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

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

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

1 typedef struct _NSRange {
2     NSUInteger location;
3     NSUInteger length;
4 } 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相比,不仅可以转换基本数据类型,还能转换结构体和对象。

时间: 2024-08-03 15:32:34

【Objective-C学习记录】第二十二天的相关文章

寒假学习记录第二天

1.if else /** * if else */ val age =18 if (age < 18 ){ println("no allow") }else if (18<=age&&age<=20){ println("allow with other") }else{ println("allow self") } 2. for ,while,do…while /** * to和until * 例: *

Windows API 编程学习记录&lt;二&gt;

恩,开始写Windows API编程第二节吧. 上次介绍了几个关于Windows API编程最基本的概念,但是如果只是看这些概念,估计还是对Windows API不是很了解.这节我们就使用Windows API 让大家来了解下Windows API的用法. 第一个介绍的Windows API 当然是最经典的MessageBox,这个API 的作用就是在电脑上显示一个对话框,我们先来看看这个API的定义吧: int WINAPI MessageBox(HWND hWnd, LPCTSTR lpTe

Windows API 编程学习记录&lt;三&gt;

恩,开始写API编程的第三节,其实马上要考试了,但是不把这节写完,心里总感觉不舒服啊.写完赶紧去复习啊       在前两节中,我们介绍了Windows API 编程的一些基本概念和一个最基本API函数 MessageBox的使用,在这节中,我们就来正式编写一个Windows的窗口程序. 在具体编写代码之前,我们必须先要了解一下API 编写窗口程序具体的三个基本步骤:             1. 注册窗口类:             2.创建窗口:             3.显示窗口: 恩,

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

libgdx学习记录19——图片动态打包PixmapPacker

libgdx中,opengl 1.x要求图片长宽必须为2的整次幂,一般有如下解决方法 1. 将opengl 1.x改为opengl 2.0.(libgdx 1.0版本后不支持1.x,当然不存在这个问题,这里针对的是0.9.9版本) 2. 使用TexturePacker将图片打包好然后作成一张大图添加进来. 第二种方法是常用方法,但是不太灵活,添加.删除某些图片不太方便,改动较大.这里可以考虑使用PixmapPacker将图片进行动态打包. 主要方法: pack(String name, Pixm

Asp.Net MVC学习记录之“一个实体对象不能由多个 IEntityChangeTracker 实例引用”

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

mysql 学习笔记 第二天

插入表格数据: Insert into table_name set columns_1=value1,columns_2=value2,对于没有赋值的列,将会取默认值,并且这个方法只能一次插入一个数据 利用文本方式插入数据: Load data local infile‘径’into table table_name: Select 的通用形式: Select columns from table or tables where conditions;from一般不能少的,但是当查询的时候没有

Objective-C 学习记录4

字符串的一些方法使用: 1.创建字典的NSString可变字符串,和NSMutableString不可变字符串.都是objective的对象. char *str是字母数组. 2.字符串格式化:stringWithFormat,,格式化任何int,char double,float等的内型. 3.stringWithString字符串赋值和这个类似, NSString *str = @"我就是我!"; 4.字符串转化为UTF-8的格式 stringWithUTF8String 5.两个

Objc基础学习记录3

在学习Objective-c中, 数组 1.NSArray, 这是一个不可变的数组,不能修改和删除其中的对象,可以存储任意objective的对象指针. 不能存储int,char类型的,,需要转换为需要的类型. 要快速枚举数组中的值,用in. 1 for (NSString *eleement in myArray) 2 NSLog(@"myArray is %@",element); 2.NSMutableArray 这是一个可变的数组,可以向其中添加和删除对象. a.添加addOb

NFC学习记录一

随着电子钱包等的类似需求的提出,最近几年NFC(near field communication 近场通信)正在开始慢慢普及.由于工作的需要,现在正在学习NFC相关的知识,先将NFC的一些基础罗列一下,做个记录. 1.NFC简介 NFC(近场通讯)能在短距离内与兼容的设备进行识别和数据交换,一般频率在13.56MHZ,它是RFID与互联互通技术整合而来,如果RFID是父的话,NFC则是子,其继承了父请的功能,又在其上有自己的发挥. NFC一般在这三大领域应用:获取简单信息.点到点通信.电子票务.