一,字符串 1创建一个字符串

1) NSString *str2=[[NSString alloc]initWithString:str1];

2)  NSString *string2=[[NSString alloc]initWithCString:"i am a man"  encoding:NSUTF8StringEncoding];

3)   NSString *string3=[[NSString alloc]initWithFormat:@"%@ %@",tempString];

是用类方法创建oc字符串(常用)

1)       NSString *string5=[NSString stringWithString:tempSting];

2)       NSString *string6=[NSString stringWithCString:"i am a man" encoding:NSUTF8StingEncoding];

3)       NSString *string7=[NSString stringWithFormat:@"%@ %@",string5,string7];

2,字符串的拼接

1)       NSString *catSting= [NSString stringWithFormat:@"%@,%@",string8,string9];

2)       NSString *cat2Sting=[catSting stringByAppendingString:@"我来了"];

占位

NSString*str=[NSString stringWithFormat:@"%02d",i];

一共两位,空位由0占取

3,计算字符串长度

NSString *Str=@"SHABI";

NSInteger len =[ Str length];

4,判断字符串是否相等

BOOL isEqual=[str1 isEqualToString:str2];

5,字符串比较   //compare  返回值 为1,0,-1;

int i=[str1 compare str2];

不区分大小写的字符串比较

[str1 compare:str2 options:NSCaseInsensitiveSearch];

6,大小写转换

NSString *str2=[str1 uppercaseString];//小写转大写,执行一次操作,不改变原来的

NSString *str4=[str3 lowercaseString]; //大写转换小写

NSString *capstr=[str5 capitalizedString];//首字母转大写

7,字符串查找

NSString *str=@"我们都是大好人,大坏人,大好人";

NSRange range = [str rangeOfString:@"大坏人"];  //注意没有* 因为  NSRange有两个元素一 个是location,一个是length

if(range.location==NSNotFound)

{

NSLog(@"没找着");

}

8,判断前后缀

BOOL have=[str hasPrefix:@"1234567"]; //前

BOOL have2=[str hasSuffix:@"90"];     //后

9,字符串提取(截出来)

NSString *str1=@"123321234567";

1      NSString* str2 =[str1 substringToIndex:4]; //从头到哪

2      NSString *str3=[str1 substringFromIndex:3];//从3到最后

3      NSString *str4=[str1 substringWithRange:NSMakeRange(8,4)];//从下标开始 截一段

10,NSMutableString //在使用时候最好不要直接赋值(=@“”),因为这个是可变字符串,他的内容都是append进去的。

alloc创建

NSMutableString *str1=[[NSMutableString alloc]initWithCapacity:0];

类方法创建

NSMutableString *str2=[NSMutableString stringWithCapacity:0];

增 赋值

[str2 appendString:@"123"];

[str2 appendFormat:@"啊"];

[str2 insertString:@"我" atIndex:2];

删除

[str2 deleteCharactersInRange:NSMakeRange(2, 3)];

[str2 setString:@"abcdefg"];//全改

[str2 replaceCharactersInRange:NSMakeRange(3, 2) withString:@"doubi"]; //改部分

二,数组

NSArray创建:

NSArray *array=[[NSArray alloc]initWithObjects:@"123",@"456",nil];

NSArray *array2=[[NSArray alloc]initWithArray:array];

NSArray *array=[NSArray arrayWithObjects:@"i",@"k",@"f",nil];

NSArray *array1=[NSArray arrayWithArray:array];

获取数组的元素

NSArray *str1=[array1 objectAtIndex:0];

数组的长度

int len=[array count];

分割字符串

分割

NSArray *arr1=[s1 componentsSeparatedByCharactersInSet:[NSCharacterSet                         characterSetWithCharactersInString:@"年 月日:"]];

NSMutableArray

创建

NSMutableArray *s1=[NSMutableArray arrayWithCapacity:0];

增,向数组里添加新的对象

[s1 addObject:@"hello"];//向数组的最后一位依次增加

[s1 insertObject:@"my" atIndex:0];//向数组某一位增加

[s1 addObjectsFromArray:@[@"1",@"2"]];//增加多个

[s1 removeObjectAtIndex:0];//删除下标

[s1 removeLastObject];  //删除最后一位

[s1 removeAllObjects];  //删光

s1 replaceObjectAtIndex:0 withObject:@"are"];

交换

[arr1 exchangeObjectAtIndex:1 withObjectAtIndex:4];

三,字典部分

创建  alloc

NSDictionary *dic =[[NSDictionary alloc]initWithObjectsAndKeys:@"V1",@"K1", nil];

NSDictionary *dic1=[[NSDictionary alloc]initWithDictionary:dic];

NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",nil];

找到对应key的value

NSString *str1 =[dic objectForKey:@"饮料"];

遍历字典的key

NSArray *str=[dic allKeys];

部分

创建

NSMutableDictionary *dic=[NSMutableDictionary dictionaryWithCapacity:0];

[dic setObject:@"china" forKey:@"country"];

删除

[dic removeObjectForKey:@"country"];// 删除key

[dic removeAllObjects];//全删

归档,把一个字典赋值给一个类

-(id)initPeopleWithDic:(NSDictionary *)dic

{

self = [super init];

if(self)

{

[self setValuesForKeysWithDictionary:dic];

}

return self;

}

-(void)setValue:(id)value forUndefinedKey:(NSString *)key

{

NSLog(@"出现异常的key%@",key);

}

四,单例的创建

#import "Sign.h"

//第一步 声明一个全局静态变量(这个类的对象)

static Sign *single=nil;

@implementation Sign

//第二步 实现+方法

+(id)shareInstance

{//第三步 做一个局部静态变量 是dispatch_once_t的类型的

static dispatch_once_t onceTaken;

//第四步 执行dispatch_once方法,第一个参数是上面的onceTaken的地址,第二个参数是这么写的^{},在大 括号里面实现全局静态变量的alloc方法,并在alloc方法后面加分号。

dispatch_once(&onceTaken,^{

single=[[Sign alloc]init];

single.isSign = @"yes";

});

//第五步 最后将静态全局变量return

return single;

五 NSData //数据类,用在本地缓存 ,网络请求,NSData就是一个二进制

NSData 与 NSstring 之间的转换。

(1) NSstring 转换成  NSData

NSString *str=@"我是一个中国人";

NSData *str2=[str dataUsingEncoding:NSUTF8StringEncoding];

(2) NSData 转换成 NSstring

NSString *str3=[[NSString alloc]initWithData:str2  encoding:NSUTF8StringEncoding];

NSData 与 NSArray 之间转换j

NSArray *arr=[NSArray arrayWithObjects:@"haha", nil];

NSData *arr1=[NSKeyedArchiver archivedDataWithRootObject:arr];

//NSArray转为NSData

NSArray *arr2=[NSKeyedUnarchiver unarchiveObjectWithData:arr1];

与 NSDictionary 之间转换

NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"aa",@"ff" ,nil];

//创建一个可变Data

NSMutableData *data=[[NSMutableData alloc]init];

//把这个可变的Data 加入到一个归档中

NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

//在 archiver 里 定义一个 dic 的  标记

[archiver encodeObject:dic forKey:@"1"];

//归档结束

[archiver finishEncoding];

NSLog(@"%@",data);

//创建一个解归档对象,这个对象初始化 从一个Data 里面读取数据

NSKeyedUnarchiver *unArchiver=[[NSKeyedUnarchiver alloc] initForReadingWithData:data];

//转换,使用这个解归档对象把 这个data的 标记读出来

NSDictionary *backDic=[unArchiver decodeObjectForKey:@"1"];

//结束解归档

[unArchiver finishDecoding];

plist 文件最后可能是NSDictionary或者NSArray

NSDictionary * plistDic=[NSDictionary dictionaryWithContentsOfFile:文件位置];

NSArray *plistArray1=[NSArray arrayWithContentsOfFile:文件地址];

七,Json

Json 是个字符串 用在网络交互

解析

NSData *dataJson=[strJson dataUsingEncoding:NSUTF8StringEncoding];

NSArray *arrayJson=[NSJSONSerialization JSONObjectWithData:dataJson options:NSJSONReadingMutableLeaves error:nil];

八,NSDate

得到一个date

NSDate *date = [NSDate date];

//得到昨天的时间,也就是24小时之前的时间

NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:-(24*60*60)];

定义时间格式

NSDateFormatter *format = [[NSDateFormatter alloc] init];

[format setDateFormat:@"hh:mm:ss:SSS"];

//得到日历

//NSCalendar

//实例化一个日历对象,并初始化,初始化的时候要initWithCalendarIdentifier

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

//实例化一个日期的对象,这个对象不是NSDate的是NSDateComponents的

NSDateComponents *com = [[NSDateComponents alloc] init];

//做一个标示,表示我们要什么内容

NSInteger flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

//从一个日期里面把这些内容取出来

com = [calendar components:flags fromDate:date];

int week = [com weekday];

int year = [com year];

int month = [com month];

int day = [com day];

int hour = [com hour];

int min = [com minute];

int sec = [com second];

NSLog(@"时间是星期%d,年%d,月%d,ri%d,小时%d,分%d,秒%d",week,year,month,day,hour,min,sec);

//NSTimeInterval时间的间隔

//把一个字符串的时间,转为NSDate的时间格式

NSDate *tempDate = [[NSDate alloc] initWithString:@"2000-05-05 10:10:10 +0600"];

//上面的时间距某个时间的时间差

NSTimeInterval distance = [tempDate timeIntervalSinceNow];

//把时间差改为具体的日子

NSTimeInterval hereDate = distance/(86400*365);

NSLog(@"从现在开始到%@有多少%f",[tempDate description],hereDate);

NSDate *startDate = [[NSDate alloc] init];

NSDate *toDate = [[NSDate alloc] initWithString:@"2013-05-05 10:10:10 +0600"];

NSCalendar *hereCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

//components: fromDate: toDate: options:

NSDateComponents *hereCom = [hereCalendar components:flags fromDate:startDate toDate:toDate options:0];

int hereHour = [hereCom hour];

int hereMin = [hereCom minute];

int hereSec = [hereCom second];

int hereDay = [hereCom day];

int herMonth = [hereCom month];

int hereYear = [hereCom year];

NSLog(@"从现在开始到%@,差了%d年,%d月,%d日,%d小时,%d分,%d秒",[toDate description],hereYear,herMonth,hereDay,hereHour,hereMin,hereSec);

OC的更多相关文章

  1. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  2. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

  3. 嵌入式&iOS:回调函数(C)与block(OC)传 参/函数 对比

    C的回调函数: callBack.h 1).声明一个doSomeThingCount函数,参数为一个(无返回值,1个int参数的)函数. void DSTCount(void(*CallBack)(i ...

  4. 嵌入式&iOS:回调函数(C)与block(OC)回调对比

    学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...

  5. WebViewJavascriptBridge源码探究--看OC和JS交互过程

    今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFr ...

  6. OC泛型

    OC泛型 泛型是程序设计语言的一种特性,他主要是为了限制类型的,比如OC中的数组,你可以限制他里面装的是NSString类型,泛型的话JAVA和C++都有的,大家要是对泛型不了解的话可以去百度一下. ...

  7. iOS学习15之OC集合

    1.数组类 1> 回顾C语言数组 数组是一个有序的集合, 来存储相同数据类型的元素. 通过下标访问数组中的元素,下标从 0 开始. 2> 数组 数组是一个有序的集合,OC中的数组只能存储对 ...

  8. JS 与OC 交互篇

    完美记录交互 CSDN博客: (OC调用JS) http://blog.csdn.net/lwjok2007/article/details/47058101 (JS调用OC) http://blog ...

  9. OC中加载html5调用html方法和修改HTML5内容

    1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...

  10. iOS开发--JS调用原生OC篇

    JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ...

随机推荐

  1. easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET

    最近公司做项目用到了easyui复选框树来实现加载不同类型产品.因为我刚刚毕业,现在也算是实习吧,所以一脸懵逼啊.在公司里的一个哥的帮助下 ,我写出来这个EasyUi复选框树了,虽然东西不难,但也是自 ...

  2. SetConsoleWindowInfo 函数--设置控制台窗口的大小和位置

    SetConsoleWindowInfo函数 来源:https://msdn.microsoft.com/en-us/library/windows/desktop/ms686125(v=vs.85) ...

  3. 初学Python(一)——数据类型

    初学Python(一)——数据类型 初学Python,主要整理一些学习到的知识点,这次是数据类型. #-*- coding:utf-8 -*- #整数 print 1 #浮点数=小数 print 1. ...

  4. OpenLayers3--ol3--新特性

    OL3: A high-performance, feature-packed library for all your mapping needs < 一个可以满足各种地图应用的高性能的.功能 ...

  5. Java高并发如何解决

    Java高并发如何解决 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧 ...

  6. 解决删除元素动画的bug

    效果说明 首先说明一下我需要做到的效果 其实很简单---点击删除按钮的时候,加入删除动画 删除动画是这样的,高度和宽度都会均匀的变小,内部的元素需要被隐藏(因为会有文字挤在一起):直到变为0结束,时长 ...

  7. Redis-key的设计技巧

    把表名转换为key前缀, 比如: tag: 第二段放置用于区分key的字段--对应mysql中的主键的列名 第三段放置主键值 第三段写列名 用户表user, 转换为redis的key-value存储 ...

  8. 31. leetcode 122. Best Time to Buy and Sell Stock II

    122. Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price ...

  9. How Django works?

    Django是如何工作的? 概念 以线上版本中Django和Nginx.uwsgi搭配,这里首先要了解uWSGI.uwsgi.WSGI分别代表着什么,其中uWSGI实现了uwsgi.WSGI.HTTP ...

  10. 如何通过binlog获取我们想要的MySql语句?

    前言 MySql的binlog一般用于我们对数据的恢复,以及从数据库对主数据库的复制和更新. 假设此时我们有一个需要查询和读取Mysql最近操作DDL的信息,我们需要怎么处理? 聪明的你可能已经想到了 ...