黑马程序员_ios基础总结12_OCFoundation1

发布时间:2016-12-7 16:39:45 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"黑马程序员_ios基础总结12_OCFoundation1",主要涉及到黑马程序员_ios基础总结12_OCFoundation1方面的内容,对于黑马程序员_ios基础总结12_OCFoundation1感兴趣的同学可以参考一下。

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- Block 1.1Block简介 Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场用的很多 1.2Block定义 int (^Sum)(int, int) = ^(int num1, int num2) { return num1+num2; }; 定义了一个叫Sum的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现 Block可以访问局部变量,但是不能修改。 intsum=10; int(^MyBlock)(int)= ^(intnum){ sum++;//编译报错 returnnum* sum; }; 如果要修改就要加关键字:__block __block intsum = 10; 1.3Blocks的赋值 在声明的同时定义变量,然后赋值 int (^MySum)(int,int) = ^(int a,int b) { return a + b; }; 也可先用typedef先声明类型,再定义变量进行赋值 typedef int (^MySum)(int,int); MySum sum = ^(int a,int b) { return a + b; }; NSRange 在Foundation/NSRange.h中对NSRange的定义: typedef struct _NSRange{ NSUInteger location; NSUInteger length; } NSRange; 这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围 location表示该范围的起始位置 length表示该范围内所含的元素个数 比如”Ilove objective-c”中的”obj”可以用location为7,length为3的范围来表示 2.1创建NSRange的三种方法 1>直接给成员赋值 NSRange range; range.location = 7; range.length = 3; 2>应用C语言的聚合结构赋值机制 NSRange range = {7, 3}; NSRange range = {.location = 7,.length = 3}; 3>Foundation框架提供的一个快捷函数NSMakeRange NSRange range = NSMakeRange(7,3); NSPoint 在Foundation/NSGeometry.h中对NSPoint的定义 typedef CGPoint NSPoint; 在CoreGraphics/CGGeometry.h中对CGPoint的相关定义 struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint; // #define CGFLOAT_TYPE double // typedef CGFLOAT_TYPE CGFloat; lNSPoint和CGPoint是等价的 l这个结构体代表的是平面中的一个点(x,y) Foundation框架提供了一个NSMakePoint()创建NSPoint NSPointpoint = NSMakePoint(10, 20); 或者 CGPointpoint = NSMakePoint(10, 20); 在CoreGraphics框架中也提供了CGPointMake()创建一个NSPoint(CGPoint) NSPointpoint = CGPointMake(10, 20); 或者 CGPointpoint = CGPointMake(10, 20); NSSize 在Foundation/NSGeometry.h中对NSSize的定义 typedef CGSize NSSize;在CoreGraphics/CGGeometry.h中对CGSize的相关定义struct CGSize { CGFloat width; CGFloat height; }; 这个结构体用来存储宽度和高度 可以利用NSMakeSize()和CGSizeMake()创建CGSize NSString 5.1NSString的创建 创建常量字符串 NSString *string = @"This is a String!"; 创建空字符串,给予赋值 NSString *string = [[NSString alloc] init]; string = @"This is a String!”; 通过字符串创建字符串 [[NSString alloc] initWithString:@"This is a String!"]; 用标准c创建字符串 char *cString = "这是一串中文"; [[NSString alloc] initWithCString:cString encoding:NSUTF8StringEncoding]; 或者 [[NSString alloc] initWithUTF8String:cString]; 5.2NSString的读取 从文件中读取字符串 NSError *error = nil; NSString *path = @"/Users/apple/Desktop/test.txt"; NSString *string = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 从一个Url读取字符串 NSError *error = nil; NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *string = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; 5.3将字符串写入文件 NSString *string = @"字符串"; NSString *path = @"/Users/apple/Desktop/abc.txt"; [string writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil]; 5.4NSString大小写处理 - (NSString *)uppercaseString 全部转为大写字母 - (NSString *)lowercaseString 全部转为小写字母 - (NSString *)capitalizedString 首字母变大写,其他字母都变小写 5.5NSString的比较 - (BOOL)isEqualToString:(NSString *)aString 比较两个字符串的内容是否相同,相同就返回YES,不同则返回NO - (NSComparisonResult)compare:(NSString*)string 逐个字符地进行比较,返回NSComparisonResult来显示比较结果. NSComparisonResult是一个枚举,有3个值: NSOrderedAscending= -1L, NSOrderedSame, NSOrderedDescending 如果左侧大于右侧,返回NSOrderedDescending, 如果左侧小于右侧,返回NSOrderedAscending, 否则返回NSOrderedSame - (NSComparisonResult)caseInsensitiveCompare:(NSString*)string 忽略大小写进行比较,返回值与compare:一致 5.6NSString中搜索字符串 - (BOOL)hasPrefix:(NSString *)aString 是否以aString开头 - (BOOL)hasSuffix:(NSString *)aString 是否以aString结尾 - (NSRange)rangeOfString:(NSString*)aString 检查是否包含了aString,如果包含,就返回aString的位置,如果不包含,NSRange的location为-1,length为0 - (NSRange)rangeOfString:(NSString*)aString options:(NSStringCompareOptions)mask 可以传递一个mask参数,改变搜索方式 比如NSStringCompareOptions为NSBackwardsSearch表示从尾部开始搜索 - (NSRange)rangeOfString:(NSString*)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange 还可以用searchRange指定搜索范围        5.6NSString的截取 - (NSString*)substringFromIndex:(NSUInteger)from 从指定位置from开始(包括指定位置的字符)到尾部 - (NSString*)substringToIndex:(NSUInteger)to 从字符串的开头一直截取到指定的位置to,但不包括该位置的字符 - (NSString*)substringWithRange:(NSRange)range 按照所给出的NSRange从字符串中截取子串 - (NSArray*)componentsSeparatedByString:(NSString *)separator 用separator为分隔符截取子串,返回一个装着所有子串的集合NSArray 5.7NSString其他用法 - (NSUInteger)length 返回字符串的长度(字符个数)  - (unichar)characterAtIndex:(NSUInteger)index 返回index位置对应的字符 - (double)doubleValue - (float)floatValue - (int)intValue - (char*)UTF8String 转为C语言中的字符串 ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

上一篇:黑马程序员_ios基础总结11_协议,代理
下一篇:朝花夕拾-工作一年后重拾c语言基础,与君共勉(一)

相关文章

相关评论