iOS开发日记(2)

以下是开发过程中遇到的一些小知识做下记录,方便查询

1、获取应用程序根目录?$(SRCROOT)

2、使导航栏不透明  self.navigationController.navigationBar.translucent = NO;

3、隐藏tabBar  self.hidesBottomBarWhenPushed = YES;

4、计时器

NSTimer 声明一个计时器必须在在视图消失之前释放掉他

[_hudTimerinvalidate];

//重新启动计时器

[_hudTimersetFireDate:[NSDatedistantPast]];

//暂停计时器

[_hudTimersetFireDate:[NSDatedistantFuture]];

5、KVC应用场景

使用textFiled时,改变textFiled失去、获取焦点时placehold的颜色。

实现原理:通过runtime来获取UITextFiled所有的成员属性,找到其中placeholderLabel这个属性,设置这个属性的textColor。重写textFiled的becomeFirstResponder(键盘弹出)、resignFirstResponder(键盘收回),通过kvc设置placeholderLabel的颜色。

- (BOOL)becomeFirstResponder{

[self setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];

return [super becomeFirstResponder];

}

- (BOOL)resignFirstResponder{

[self setValue:[UIColor greenColor] forKeyPath:@"_placeholderLabel.textColor"];

return [super resignFirstResponder];

}

6、iOS程序之间的通信

由于ios程序本身采用沙盒结构,比较封闭。各个app间是比较独立的。但是ios还提供了一些app间通信的接口。

可以利用这些接口,做些东西。

1。判断系统里是否安装了某个app。比如新浪微博应用注册了URL scheme为@"weibo",我们可以通过

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weibo://"]]来判断系统里是否发装了新浪微博。

2。从一个应用里启动另一个应用。可以通过接口

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"weibo://"]]来启动微博。参数要根据微博里规定的方式传递,一般就像http的get方式传参一样。当然启动以后,自己的应用就会退到后台,想要再切回来,就要在自己的应用里也注册URL scheme。做为回调参数传给微博app。

7、NSString方法梳理

+ (NSString *)pathWithComponents(NSArray *)components

根据components中的元素来构建路径.

- (NSArray *)pathComponents

解析路径,返回构成路径的各个部分.

- (NSString *)lastPathComponent

提取路径中的最后一个组成部分

- (NSString *)pathExtension

从路径中最后一个组成部分中提取扩展名

- (NSString *)stringByAppendingPathComponent(NSString *)path

将path添加到现有路径末尾

- (NSString *)stringByAppendingPathExtension(NSString *)ext

将指定的扩展名添加到现有路径的最后一个组成部分上

- (NSString *)stringByDeletingLastPathComponent

删除路径中的最后一个组成部分

- (NSString *)stringByDeletingPathExtension

从文件的最后一部分删除扩展名

- (NSString *)stringByExpandingTildeInPath

将路径中的代字符扩展成用户主目录(~)或指定用户的主目录(~user)

- (NSString *)stringByResolvingSymlinksInPath

尝试解析路径中的符号链接

- (NSString *)stringByStandardizingPath

解析路径中的~,(..)父目录,(.)当前目录和符号链接来标准化路径.

常用的NSProcessInfo类(进程相关)

+ (NSProcessInfo *)processInfo

返回当前进程信息

- (NSArray *)arguments

以NSString对象数字的形式返回当前进程的参数

- (NSDictionary *)environment

返回变量/值对字典,以描述当前的环境变量(比如PATH等等)

- (int)processIdentifier

返回进程PID

- (NSString *)processName

返回当前正在执行的进程名称

- (NSString *)globallyUniqueString

每次调用该方法时,都会返回不同的单值字符串,可以生成临时文件名

- (NSString *)hostName

返回主机系统名

-(NSUInteger)operatingSystem

返回表示操作系统的数字

- (NSString *)operatingSystemName

返回操作系统的名称

- (NSString *)operatingSystemVersionString

返回操作系统版本

- (void)setProcessNameNSString *)name

修改当前进程名(谨慎使用)

基本文件操作类: NSFileHandle

NSFileHandle类没有提供创建文件的方法,所以要创建文件需要使用FileManager方法来创建, NSFileHandle类中的文件操作方法都是假定文件都是存在的,如果不存在,则返回nil.

常用的NSFileHandle方法:

+ (id)fileHandleForReadingAtPathNSString *)path

打开一个文件准备读取

+ (id)fileHandleForWritingAtPathNSString *)path

打开一个文件准备写入

+ (id)fileHandleForUpdatingAtPathNSString *)path

打开一个文件准备更新(读取和写入)

- (NSData *)availableData

从设备或者通道返回可用的数据

- (NSData *)readDataToEndOfFile

读取其余的数据直到文件的末尾(最大值为无符号整形的最大值)

- (NSData *)readDataOfLengthNSUInteger)length

从文件读取指定字节数的内容

- (void)writeDataNSData *)data

将data写入文件

- (unsigned long long)offsetInFile

获取当前文件的偏移量

- (void)seekToFileOffsetunsigned long long)offset

设置当前文件的偏移量

- (unsigned long long)seekToEndOfFile

将当前文件的偏移量定位到文件的末尾

- (void)truncateFileAtOffset:(unsigned long long)offset

将文件的长度设置为offset字节(如需要,可填充内容)

- (void)closeFile

关闭文件

-(bool) fileHandleForReadingAtPath

文件是否可读

-(void) fileHandleForWritingAtPath

文件是否可写

你可能感兴趣的:(iOS开发日记(2))