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開發系列--網絡開發 概覽 大部分應用程序都或多或少會牽扯到網絡開發,例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 3,721評論 2 7
  • 一、iOS中的沙盒機制 iOS應用程序只能對自己創建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一...
    1d5cb7cff98d閱讀 1,787評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 一、iOS中的沙盒機制 iOS應用程序只能對自己創建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一...
    tzhtodd閱讀 1,299評論 0 2
  • 1.NSTimer //暫停if ([timer isValid]) {[timer setFireDate:[N...
    俊月閱讀 1,373評論 0 0