站在前輩的肩膀上前行
UIKit框架和Foundation框架
所有的Mac OS X和IOS程序都是由大量的對(duì)象構(gòu)成械筛,而這些對(duì)象的根對(duì)象都是NSObject,NSObject就處在Foundation框架之中
Foundation框架大致內(nèi)容
值對(duì)象---Value
-
NSAffineTransform
一個(gè)圖形坐標(biāo)變換
轉(zhuǎn)換指定一個(gè)坐標(biāo)系中的點(diǎn)如何轉(zhuǎn)換為另一個(gè)坐標(biāo)系中的點(diǎn)飒炎。 仿射變換是一種特殊類(lèi)型的變換埋哟,保留路徑中的平行線(xiàn),但不一定保留長(zhǎng)度或角度郎汪。 縮放赤赊,旋轉(zhuǎn)和平移是仿射變換支持的最常用的操作,但剪切也是可能的煞赢。
-
NSCalendar
日歷類(lèi) 定義日歷(如年代抛计,年和時(shí)區(qū)時(shí)間)與絕對(duì)時(shí)間點(diǎn)之間關(guān)系的對(duì)象,提供用于計(jì)算和比較日期的功能照筑。
NSCalendar對(duì)象封裝了定義一年的開(kāi)始吹截,長(zhǎng)度和分區(qū)的計(jì)算系統(tǒng)的信息。 他們提供有關(guān)日歷的信息朦肘,并支持日歷計(jì)算饭弓,例如確定給定日歷單位的范圍,并將單位添加到給定的絕對(duì)時(shí)間。
-
NSCache
SD圖片緩存就用的該類(lèi) 一個(gè)可變集合,用于臨時(shí)存儲(chǔ)臨時(shí)鍵值對(duì)樊卓,在資源不足的情況下被釋放。
NSCache類(lèi)包含了各種自動(dòng)釋放內(nèi)存的機(jī)制阀趴,可以確保緩存不會(huì)占用太多的系統(tǒng)內(nèi)存。如果其他應(yīng)用程序需要內(nèi)存苍匆,這些機(jī)制會(huì)從緩存中刪除一些項(xiàng)目刘急,從而最大限度地減少其內(nèi)存占用。
您可以從不同的線(xiàn)程中添加浸踩,刪除和查詢(xún)緩存中的項(xiàng)目叔汁,而無(wú)需自己鎖定緩存。
與NSMutableDictionary對(duì)象不同,緩存不會(huì)復(fù)制放入其中的關(guān)鍵對(duì)象据块。
您通常使用NSCache對(duì)象臨時(shí)存儲(chǔ)對(duì)象與創(chuàng)建重要的臨時(shí)數(shù)據(jù)码邻。重用這些對(duì)象可以提供性能優(yōu)勢(shì),因?yàn)樗鼈兊闹挡槐刂匦掠?jì)算另假。但是像屋,這些對(duì)象對(duì)應(yīng)用程序并不重要,如果內(nèi)存不足边篮,可以將其釋放己莺。如果釋放,則需要時(shí)重新計(jì)算它們的值戈轿。
具有可以在不使用時(shí)釋放的子組件的對(duì)象可以采用NSDiscardableContent協(xié)議來(lái)改善緩存機(jī)制的行為凌受。默認(rèn)情況下,如果緩存中的NSDiscardableContent對(duì)象的內(nèi)容被釋放思杯,它們將被自動(dòng)刪除胁艰,盡管這個(gè)自動(dòng)刪除機(jī)制是可以改變的。如果一個(gè)NSDiscardableContent對(duì)象被放入緩存中智蝠,緩存在移除時(shí)調(diào)用discardContentIfPossible。
-
NSData
NSData奈梳,數(shù)據(jù)杈湾,內(nèi)存中的靜態(tài)字節(jié)緩沖區(qū),當(dāng)我們需要把一些信息寫(xiě)入到文件里或發(fā)送到網(wǎng)絡(luò)上攘须,我們需要把這些數(shù)據(jù)轉(zhuǎn)換下漆撞,變成純粹的0、1字符流于宙。也就是網(wǎng)絡(luò)中要傳數(shù)據(jù)的的時(shí)候浮驳,我們通常會(huì)用相應(yīng)的NSData的數(shù)據(jù)來(lái)進(jìn)行存儲(chǔ)。捞魁。
-
NSMutableData
NSMutableData至会,數(shù)據(jù) 內(nèi)存中表示動(dòng)態(tài)字節(jié)緩沖區(qū)的對(duì)象。當(dāng)我們需要把一些信息寫(xiě)入到文件里或發(fā)送到網(wǎng)絡(luò)上谱俭,我們需要把這些數(shù)據(jù)轉(zhuǎn)換下奉件,變成純粹的0、1字符流昆著。也就是網(wǎng)絡(luò)中要傳數(shù)據(jù)的的時(shí)候县貌,我們通常會(huì)用相應(yīng)的NSData的數(shù)據(jù)來(lái)進(jìn)行存儲(chǔ)。凑懂。
NSMutableData及其超類(lèi)NSData為字節(jié)緩沖區(qū)提供數(shù)據(jù)對(duì)象或面向?qū)ο蟮陌b器煤痕。 數(shù)據(jù)對(duì)象讓簡(jiǎn)單分配的緩沖區(qū)(也就是沒(méi)有嵌入式指針的數(shù)據(jù))承擔(dān)基礎(chǔ)對(duì)象的行為。 它們通常用于數(shù)據(jù)存儲(chǔ),而且在分布式對(duì)象應(yīng)用程序中也很有用摆碉,其中包含在數(shù)據(jù)對(duì)象中的數(shù)據(jù)可以在應(yīng)用程序之間復(fù)制或移動(dòng)塘匣。 NSData創(chuàng)建靜態(tài)數(shù)據(jù)對(duì)象,NSMutableData創(chuàng)建動(dòng)態(tài)數(shù)據(jù)對(duì)象兆解。 您可以輕松地將一種類(lèi)型的數(shù)據(jù)對(duì)象轉(zhuǎn)換為另一種類(lèi)型的數(shù)據(jù)對(duì)象馆铁,并將NSData對(duì)象或NSMutableData對(duì)象作為參數(shù)。
-
NSPurgeableData
包含字節(jié)的可變數(shù)據(jù)對(duì)象锅睛,不再需要時(shí)可以將其釋放埠巨。
NSPurgeableData對(duì)象繼承自其超類(lèi)NSMutableData的創(chuàng)建方法,同時(shí)提供NSDiscardableContent協(xié)議的默認(rèn)實(shí)現(xiàn)现拒。
所有NSPurgeableData對(duì)象開(kāi)始“訪(fǎng)問(wèn)”辣垒,以確保它們不會(huì)立丟棄即被釋放。beginContentAccess方法將對(duì)象的字節(jié)標(biāo)記為“被訪(fǎng)問(wèn)”印蔬,從而防止它們被釋放勋桶,并且在訪(fǎng)問(wèn)對(duì)象之前必須被調(diào)用,否則將會(huì)出現(xiàn)異常如果字節(jié)沒(méi)有被釋放侥猬,并且被成功標(biāo)記為“被訪(fǎng)問(wèn)”例驹,這個(gè)方法返回YES,任何直接或間接訪(fǎng)問(wèn)這些字節(jié)的方法或者它們?cè)诓槐弧霸L(fǎng)問(wèn)”的時(shí)候都會(huì)產(chǎn)生一個(gè)異常退唠。你使用完成了數(shù)據(jù)鹃锈,調(diào)用endContentAccess來(lái)允許它們被釋放,以便快速釋放內(nèi)存瞧预。
您可以自己使用這些對(duì)象屎债,并且不一定必須將它們與NSCache結(jié)合使用才能獲得清除行為。 NSCache類(lèi)整合了一些緩存機(jī)制和一些自動(dòng)刪除機(jī)制垢油,以確保其內(nèi)存占用不會(huì)太大盆驹。
不應(yīng)將NSPurgeableData對(duì)象用作基于哈希的集合中的鍵,因?yàn)樽止?jié)指針的值在每次數(shù)據(jù)變化之后都會(huì)更改滩愁。
-
NSDate
獲取日期(例如獲取當(dāng)前手機(jī)上的時(shí)間 但是獲取不了日歷等) 特定時(shí)間點(diǎn)的表示躯喇,與任何日歷或時(shí)區(qū)無(wú)關(guān)。
NSDate對(duì)象封裝了一個(gè)時(shí)間點(diǎn)硝枉,與任何特定的日歷系統(tǒng)或時(shí)區(qū)無(wú)關(guān)玖瘸。 日期對(duì)象是不可變的,表示相對(duì)于絕對(duì)引用日期(2001年1月1日00:00:00 UTC)的不變時(shí)間間隔檀咙。
NSDate類(lèi)提供了比較日期的方法劣欢,計(jì)算兩個(gè)日期之間的時(shí)間間隔犀变,并從相對(duì)于另一個(gè)日期的時(shí)間間隔創(chuàng)建一個(gè)新的日期笨触。 NSDate對(duì)象可以與NSDateFormatter對(duì)象一起使用來(lái)創(chuàng)建日期和時(shí)間的本地化表示荠卷,以及使用NSCalendar對(duì)象執(zhí)行日歷算術(shù)醉者。
-
NSCalemdarDate (被棄用改為NSCalendar)
被棄用改為NSCalendar
-
NSDateComponents
NSDateComponents是一個(gè)與日期有關(guān)的類(lèi),但這個(gè)類(lèi)具體是干嗎的呢?我們現(xiàn)從字面上的意思來(lái)理解撬即。Components就是零件立磁、組件的意思,其實(shí)這個(gè)類(lèi)的作用就是把日期拆分成一個(gè)一個(gè)的組件剥槐。一個(gè)日期是有年月日時(shí)分秒組成的唱歧,components這個(gè)類(lèi)的作用就是把日期拆分成單獨(dú)的年、月粒竖、日颅崩、時(shí)、分温圆、秒挨摸。提供用于計(jì)算和比較日期的功能。
NSDateComponents以可擴(kuò)展的岁歉,面向?qū)ο蟮姆绞椒庋b日期的組件得运。 它用于通過(guò)提供組成日期和時(shí)間的時(shí)間組件來(lái)指定日期:小時(shí),分鐘锅移,秒熔掺,日,月非剃,年等置逻。 您也可以使用它來(lái)指定持續(xù)時(shí)間,例如5小時(shí)16分鐘备绽。 NSDateComponents對(duì)象不需要定義所有組件字段券坞。 當(dāng)創(chuàng)建NSDateComponents的新實(shí)例時(shí),日期組件被設(shè)置為NSDateComponentUndefined肺素。
-
NSDecimalNumberHandler
對(duì)比NSDecimalNumber該類(lèi)可以精確控制保留小數(shù)位數(shù) 采用十進(jìn)制數(shù)行為協(xié)議的類(lèi)恨锚。
這個(gè)類(lèi)允許你設(shè)置一個(gè)NSDecimalNumber對(duì)象取整的方式并處理錯(cuò)誤,而不必創(chuàng)建一個(gè)自定義的類(lèi)倍靡。
你可以使用這個(gè)類(lèi)的一個(gè)實(shí)例作為任何以...行為結(jié)束的NSDecimalNumber方法的參數(shù)猴伶。 如果你不認(rèn)為你需要特殊的行為,你可能不需要這個(gè)類(lèi) - 它很可能是NSDecimalNumber的默認(rèn)行為將適合您的需要塌西。
NSDecimalNumber和NSDecimalNumberHandler 區(qū)別
參考例子:http://blog.csdn.net/wangyanchang21/article/details/50981829
NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain
scale:2
raiseOnExactness:NO
raiseOnOverflow:NO
raiseOnUnderflow:NO
raiseOnDivideByZero:NO]; //保留2位小數(shù)
scale: 小數(shù)點(diǎn)后保留的位數(shù)
RoundingMode: 小數(shù)保留的類(lèi)型
根據(jù)官方文檔說(shuō)明, 枚舉值分析:
NSRoundPlain, 四舍五入
NSRoundDown, 只舍不入
NSRoundUp, 只入不舍
NSRoundBankers 四舍六入, 中間值時(shí), 取最近的,保持保留最后一位為偶數(shù)
-
NSLocale
類(lèi)返回本地化信息他挎,主要體現(xiàn)在"語(yǔ)言"和"區(qū)域格式"這兩個(gè)設(shè)置項(xiàng)
您通常使用語(yǔ)言環(huán)境來(lái)格式化和解釋關(guān)于用戶(hù)的習(xí)慣和偏好的信息。您可以使用initWithLocaleIdentifier初始化任意數(shù)量的區(qū)域設(shè)置實(shí)例:使用availableLocaleIdentifiers數(shù)組中找到的某個(gè)區(qū)域設(shè)置標(biāo)識(shí)符捡需。 但是办桨,您通常使用配置為匹配當(dāng)前用戶(hù)的首選項(xiàng)的區(qū)域設(shè)置。使用currentLocale屬性獲取與當(dāng)前用戶(hù)首選項(xiàng)匹配的區(qū)域設(shè)置站辉。 如果您需要在用戶(hù)更改區(qū)域設(shè)置時(shí)收到警報(bào)崔挖,請(qǐng)注冊(cè)NSCurrentLocaleDidChangeNotification通知贸街。 或者,您可以使用autoupdatingCurrentLocale屬性來(lái)獲取一個(gè)使用用戶(hù)的配置設(shè)置自動(dòng)更新的區(qū)域
用法完美解釋:http://www.reibang.com/p/5e40363152b1
-
NSNull
Objective-C是C的一個(gè)超集狸相,主要引入了OO的設(shè)計(jì)理念薛匪。所以,Objective-C不可避免地使用指針以及指針變量來(lái)描述一個(gè)對(duì)象的內(nèi)存地址脓鹃。那么逸尖,既然存在指針這種東西,當(dāng)然就允許存在NULL指針瘸右,也就是空指針娇跟。
另外,Objective-C主要定義了兩種容器:NSArray和NSDictionary太颤,并且規(guī)定了這兩種容器中都不能放置nil指針苞俘,只能存放NSObject對(duì)象。那么就存在有些場(chǎng)景確實(shí)需要存nil指針龄章,可能是出于保證count的正確性的目的吃谣。所以,在需要存放nil指針的位置就存放了NSNull對(duì)象做裙,用來(lái)表示空對(duì)象岗憋,除此之外無(wú)任何實(shí)際意義。這也就是為什么Cocoa需要設(shè)計(jì)NSNull的原因锚贱。
參考:https://www.cnblogs.com/CoderPlace/p/4411589.html
-
NSTimeZone
表示時(shí)區(qū)信息 包含與特定國(guó)家區(qū)域相關(guān)的標(biāo)準(zhǔn)時(shí)間約定信息的對(duì)象仔戈。
和時(shí)間相關(guān)的最重要的一個(gè)因素, 因?yàn)楦鱾€(gè)地區(qū)的時(shí)區(qū)都不一樣, 所以時(shí)間的差別是很大的, 這就是所謂的時(shí)差 時(shí)區(qū)國(guó)家區(qū)域劃分。因此拧廊,這些對(duì)象具有這些區(qū)域的名稱(chēng)监徘。時(shí)區(qū)對(duì)象還表示格林尼治標(biāo)準(zhǔn)時(shí)間(GMT)和縮寫(xiě)(例如太平洋標(biāo)準(zhǔn)時(shí)間的PST)的時(shí)間偏移量,加號(hào)或減號(hào)吧碾。
參考:http://www.reibang.com/p/5f4e7fabcc02 解釋了 NSTimeZone和NSDate的區(qū)別
NSValue
一個(gè)NSValue對(duì)象是用來(lái)存儲(chǔ)一個(gè)C或者Objective-C數(shù)據(jù)的簡(jiǎn)單容器凰盔。它可以保存任意類(lèi)型的數(shù)據(jù),比如int滤港,float,char趴拧,當(dāng)然也可以是指pointers, structures, and object ids溅漾。NSValue類(lèi)的目標(biāo)就是允許以上數(shù)據(jù)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)能夠被添加到集合里,例如那些需要其元素是對(duì)象的數(shù)據(jù)結(jié)構(gòu)著榴,如NSArray或者NSSet的實(shí)例添履。需要注意的是NSValue對(duì)象一直是不可枚舉的
參考:http://blog.sina.com.cn/s/blog_bf9843bf0101ehs1.html 很全
-
NSNumber
NSNumber:專(zhuān)門(mén)用來(lái)裝基礎(chǔ)類(lèi)型的對(duì)象,把整型脑又、單精度暮胧、雙精度锐借、字符型等基礎(chǔ)類(lèi)型存儲(chǔ)為對(duì)象
NSArray\NSDictionary中只能存放OC對(duì)象, 不能存放int\float\double等基本數(shù)據(jù)類(lèi)
如果真想把基本數(shù)據(jù)(比如int)放進(jìn)數(shù)組或字典中, 需要先將基本數(shù)據(jù)類(lèi)型包裝成OC對(duì)象,把 int /float /double -----> 包裝成一個(gè)對(duì)象
參考:https://www.cnblogs.com/GISerYang/p/3340764.html
-
NSDecimalNumber
NSDecimalNumber是NSNumber的不可變子類(lèi)往衷。蘋(píng)果針對(duì)浮點(diǎn)型計(jì)算時(shí)存在精度計(jì)算誤差的問(wèn)題而提供的一個(gè)計(jì)算類(lèi),它是基于10進(jìn)制的定點(diǎn)計(jì)算保證了精度不會(huì)缺失钞翔。同時(shí)也可以定制精度的取正類(lèi)型:向上取正、向下去正席舍、四舍五入等布轿。相對(duì)與浮點(diǎn)類(lèi)型的計(jì)算,NSDecimalNumber提供了更加精準(zhǔn)的計(jì)算来颤。
參考http://blog.csdn.net/yuwuchaio/article/details/53080645
-
NSValueTransformer
主要用于數(shù)據(jù)類(lèi)型的變換(如Model?View等)汰扭,變換可以是單向或雙向的。NSValueTransformer是一個(gè)抽象類(lèi)福铅,所有的類(lèi)型變換都在NSValueTransformer的子類(lèi)中定義
通過(guò)繼承NSValueTransformer并重寫(xiě)必要的方法來(lái)創(chuàng)建一個(gè)值轉(zhuǎn)換器萝毛,以提供所需的自定義轉(zhuǎn)換。然后使用setValueTransformer:forName:方法注冊(cè)值轉(zhuǎn)換器滑黔,以便應(yīng)用程序的其他部分可以通過(guò)名稱(chēng)valueTransformerForName:來(lái)訪(fǎng)問(wèn)它笆包。
使用transformedValue:方法將值從一種表示轉(zhuǎn)換為另一種表示。如果值轉(zhuǎn)換器通過(guò)為allowReverseTransformation返回YES來(lái)指定其轉(zhuǎn)換是可逆的拷沸,則還可以使用reverseTransformedValue:以相反方式執(zhí)行轉(zhuǎn)換色查。例如,反轉(zhuǎn)字符串中的字符是可逆操作撞芍,而將字符串中的字符更改為大寫(xiě)字符是不可逆的操作秧了。
值轉(zhuǎn)換器可以接受一種類(lèi)型的輸入并返回不同類(lèi)型的值。例如序无,一個(gè)值轉(zhuǎn)換器可以帶一個(gè)NSImage或UIImage對(duì)象验毡,并返回一個(gè)包含該圖像的PNG表示的NSData對(duì)象。
參考http://blog.csdn.net/oqqquzi1234567/article/details/43020173
MXL解析-----XML
-
NSXMLparser
NSXMLParser是事件驅(qū)動(dòng)的XML文檔解析器 NSXMLParser采取的是SAX方式解析帝嗡,特點(diǎn)是事件驅(qū)動(dòng)晶通,當(dāng)掃描到文檔和元素都會(huì)通知代理
NSXMLParser通知其委托關(guān)于在處理XML文檔時(shí)遇到的項(xiàng)目(元素,屬性哟玷,CDATA塊狮辽,注釋等)。 除了報(bào)告之外巢寡,它本身不會(huì)對(duì)這些解析的項(xiàng)目做任何事情喉脖。 它也報(bào)告解析錯(cuò)誤。 為了方便起見(jiàn)抑月,以下描述中的NSXMLParser對(duì)象有時(shí)被稱(chēng)為解析器對(duì)象树叽。 除非在回調(diào)中使用,否則NSXMLParser是一個(gè)線(xiàn)程安全的類(lèi)谦絮,只要任何給定的實(shí)例只在一個(gè)線(xiàn)程中使用题诵。
參考 http://www.reibang.com/p/4aeb8dc55c11
字符串------Strings
-
NSCharacterSet
NSCharacterSet類(lèi)似一個(gè)字符串處理工具類(lèi) 表示用于搜索操作的一組固定Unicode字符值的對(duì)象洁仗。
NSCharacterSet對(duì)象表示一組符合Unicode的字符。 NSString和NSScanner對(duì)象使用NSCharacterSet對(duì)象將字符組織在一起進(jìn)行搜索操作性锭,以便在搜索過(guò)程中可以找到任何特定的字符集赠潦。集群的兩個(gè)公共類(lèi)NSCharacterSet和NSMutableCharacterSet分別聲明靜態(tài)和動(dòng)態(tài)字符集的編程接口。
使用這些類(lèi)創(chuàng)建的對(duì)象被稱(chēng)為字符集對(duì)象(并且不會(huì)導(dǎo)致混淆篷店,僅作為字符集)祭椰。由于類(lèi)簇的性質(zhì),字符集對(duì)象不是NSCharacterSet或NSMutableCharacterSet類(lèi)的實(shí)際實(shí)例疲陕,而是其私有子類(lèi)之一的實(shí)際實(shí)例方淤。雖然字符集對(duì)象的類(lèi)是私有的,但是它的接口是公共的蹄殃,如這些抽象超類(lèi)NSCharacterSet和NSMutableCharacterSet所聲明的携茂。字符集類(lèi)采用NSCopying和NSMutableCopying協(xié)議,方便將一種字符集轉(zhuǎn)換為另一種字符集诅岩。
參考http://www.reibang.com/p/5fb58dc73e7b
-
NSMutableCharacterSet
NSMutableCharacterSet類(lèi)似一個(gè)字符串處理工具類(lèi)表示用于搜索操作的可變Unicode字符值集合的對(duì)象讳苦。
NSMutableCharacterSet類(lèi)聲明編程接口來(lái)管理一組可修改的Unicode字符的對(duì)象。 您可以添加或刪除可變字符集中的字符作為NSRange結(jié)構(gòu)中的數(shù)字值吩谦,或者作為字符串中的字符值鸳谜,通過(guò)聯(lián)合或交叉組合字符集并反轉(zhuǎn)字符集。
可變字符集的使用效率低于不可變字符集式廷。 如果創(chuàng)建后不需要更改字符集咐扭,請(qǐng)使用copy創(chuàng)建一個(gè)不可變的副本。
NSMutableCharacterSet沒(méi)有定義原始方法滑废。 除了NSCharacterSet的原語(yǔ)之外蝗肪,子類(lèi)必須實(shí)現(xiàn)由這個(gè)類(lèi)聲明的所有方法。 他們還必須實(shí)現(xiàn)mutableCopyWithZone :
NSCharacterSet和 NSMutableCharacterSet的部分區(qū)別
參考:http://blog.csdn.net/lcl130/article/details/41802623
-
NSString
一個(gè)靜態(tài)的純文本Unicode字符串對(duì)象蠕趁。
NSString類(lèi)及其可變子類(lèi)NSMutableString提供了一組用于處理字符串的API薛闪,包括用于比較,搜索和修改字符串的方法俺陋。 NSString對(duì)象用于整個(gè)Foundation和其他Cocoa框架豁延,作為平臺(tái)上所有文本和語(yǔ)言功能的基礎(chǔ)。
常用方法:http://blog.csdn.net/tt5267621/article/details/7670515
-
NSMutableString
一個(gè)動(dòng)態(tài)的純文本Unicode字符串對(duì)象腊状。
NSMutableString類(lèi)聲明編程接口到一個(gè)對(duì)象诱咏,該對(duì)象管理一個(gè)可變字符串,也就是說(shuō)寿酌,一個(gè)字符串的內(nèi)容可以被編輯胰苏,它在概念上代表一個(gè)Unicode字符數(shù)組硕蛹。 為了構(gòu)造和管理一個(gè)不可變的字符串醇疼,或者是一個(gè)在創(chuàng)建后不能改變的字符串硕并,可以使用NSString類(lèi)的一個(gè)對(duì)象。
NSMutableString類(lèi)為從NSString繼承的基本字符串處理行為添加一個(gè)基本方法replaceCharactersInRange:withString:秧荆。 所有其他修改字符串的方法都通過(guò)這個(gè)方法來(lái)工作倔毙。 例如,insertString:atIndex:簡(jiǎn)單地替換0長(zhǎng)度范圍內(nèi)的字符乙濒,而deleteCharactersInRange:替換給定范圍內(nèi)不帶字符的字符陕赃。
NSString和NSMutableString
常用方法:http://seven-sally.lofter.com/post/19d861_500373
-
NSFormatter
一個(gè)抽象類(lèi),為創(chuàng)建颁股,解釋和驗(yàn)證值的文本表示形式的對(duì)象聲明一個(gè)接口么库。
NSFormatter是用于子類(lèi)化的。 自定義格式化程序可以限制輸入并以新穎的方式增強(qiáng)數(shù)據(jù)的顯示甘有。 例如诉儒,您可以使用自定義格式器,以確保用戶(hù)輸入的序列號(hào)符合預(yù)定義的格式亏掀。 在決定創(chuàng)建自定義格式器之前忱反,請(qǐng)確保您不能配置公共子類(lèi)來(lái)滿(mǎn)足您的要求。
-
NSDateFormatter
NSDateFormatter是系統(tǒng)提供的一個(gè)用于時(shí)間格式化的類(lèi),用于在日期和文本表示之間進(jìn)行轉(zhuǎn)換,可是每次創(chuàng)建這個(gè)類(lèi)的來(lái)做時(shí)間轉(zhuǎn)換的消耗卻是很大的,這個(gè)時(shí)候就需要程序猿來(lái)進(jìn)行優(yōu)化.
NSDateFormatter的實(shí)例創(chuàng)建NSDate對(duì)象的字符串表示滤愕,并將日期和時(shí)間的文本表示轉(zhuǎn)換為NSDate對(duì)象温算。 對(duì)于用戶(hù)可見(jiàn)的日期和時(shí)間表示,NSDateFormatter提供了各種本地化的預(yù)設(shè)和配置選項(xiàng)间影。 對(duì)于日期和時(shí)間的固定格式表示,您可以指定自定義格式字符串宇智。
參考:http://www.reibang.com/p/3efece422336
-
NSNumBerFormatter
NSDateFormatter是系統(tǒng)提供的一個(gè)用于在數(shù)值和文本表示之間進(jìn)行轉(zhuǎn)換机蔗。
NSNumberFormatter的實(shí)例格式化包含NSNumber對(duì)象的單元格的文本表示形式,并將數(shù)字值的文本表示形式轉(zhuǎn)換為NSNumber對(duì)象牙言。 該表示包含整數(shù)酸钦,浮點(diǎn)數(shù)和雙精度; 浮動(dòng)和雙打可以格式化到指定的小數(shù)位。 NSNumberFormatter對(duì)象也可以在單元格可以接受的數(shù)值上施加范圍咱枉。
參考:http://www.reibang.com/p/29ef372c65d3
-
NSScanner
該類(lèi)為一個(gè)從字符串中掃描值的類(lèi)簇的抽象超類(lèi)卑硫。
NSScanner對(duì)象將NSString對(duì)象的字符解釋并轉(zhuǎn)換為數(shù)字和字符串值徒恋。您在創(chuàng)建掃描儀時(shí)指定掃描儀的字符串,當(dāng)您請(qǐng)求時(shí)欢伏,掃描儀從頭到尾遍歷該字符串的字符入挣。
由于類(lèi)簇的性質(zhì),掃描器對(duì)象不是NSScanner類(lèi)的實(shí)際實(shí)例硝拧,而是其私有子類(lèi)之一径筏。盡管掃描器對(duì)象的類(lèi)是私有的,但它的接口是公共的障陶,正如這個(gè)抽象超類(lèi)NSScanner所聲明的那樣滋恬。 NSScanner的原始方法是NSScanner和配置掃描器下列出的所有方法。你使用這個(gè)類(lèi)創(chuàng)建的對(duì)象被稱(chēng)為掃描器對(duì)象(當(dāng)不會(huì)造成混淆抱究,只是作為掃描器)夷恍。
您可以將NSScanner對(duì)象設(shè)置為在使用charactersToBeSkipped屬性?huà)呙枳址畷r(shí)忽略一組字符。掃描目標(biāo)之前跳過(guò)跳過(guò)集中的字符媳维。要跳過(guò)的默認(rèn)字符集是空格和換行字符集酿雪。
參考http://www.reibang.com/p/a0ee15f94131
-
NSSortDescriptor
NSSortDescriptor是用來(lái)指定排序規(guī)則, 對(duì)集合等進(jìn)行排序時(shí)指定結(jié)果的排序規(guī)則生產(chǎn)不可變對(duì)象。
您可以通過(guò)指定要比較的屬性的key和排序順序(升序或降序)來(lái)構(gòu)造NSSortDescriptor的實(shí)例侄刽。 或者指黎,您也可以指定一個(gè)選擇器來(lái)執(zhí)行比較,它允許您指定其他比較選擇器州丹,例如localizedStandardCompare:和localizedCaseInsensitiveCompare :. 如果要排序的對(duì)象不響應(yīng)排序描述符的比較選擇器醋安,則排序引發(fā)異常。
參考:http://www.reibang.com/p/3e9f0884be6b
集合類(lèi)----- Collections
-
NSArray
NSArray對(duì)象的靜態(tài)有序集合只能夠存貯OC對(duì)象墓毒。
NSArray及其子類(lèi)NSMutableArray管理被稱(chēng)為數(shù)組的對(duì)象的有序集合吓揪。 NSArray創(chuàng)建靜態(tài)數(shù)組,NSMutableArray創(chuàng)建動(dòng)態(tài)數(shù)組。 當(dāng)需要對(duì)象的有序集合時(shí),可以使用數(shù)組做瞪。
參考http://www.reibang.com/p/c8caa30afd9d
-
NSMutableArray
NSMutableArray對(duì)象的動(dòng)態(tài)有序集合衫樊。
NSMutableArray類(lèi)將編程接口聲明為管理可修改對(duì)象數(shù)組的對(duì)象刷袍。 該類(lèi)將插入和刪除操作添加到從NSArray繼承的基本數(shù)組處理行為。
NSMutableArray和NSArray
常用用法:http://blog.sina.com.cn/s/blog_65de545001016vpj.html
-
NSDictionary
NSDictionary是一個(gè)無(wú)序的靜態(tài)集合,也可稱(chēng)之為鍵值對(duì)。與數(shù)組不同的是字典可以通過(guò)特定的key快速查找到想要的值焙格,而不用遍歷字典。所以一個(gè)唯一的key只能對(duì)應(yīng)一個(gè)值夷都,而多個(gè)key可以對(duì)應(yīng)同一個(gè)值眷唉。
NSDictionary類(lèi)將編程接口聲明為管理鍵和值的不可變關(guān)聯(lián)的對(duì)象。當(dāng)你需要一個(gè)方便有效的方法來(lái)檢索與任意鍵相關(guān)的數(shù)據(jù)時(shí),使用這個(gè)類(lèi)或它的子類(lèi)NSMutableDictionary冬阳。 NSDictionary創(chuàng)建靜態(tài)字典荣瑟,NSMutableDictionary創(chuàng)建動(dòng)態(tài)字典。 (為了方便起見(jiàn)摩泪,術(shù)語(yǔ)詞典指的是這些類(lèi)中的一個(gè)類(lèi)的任何實(shí)例,而沒(méi)有指定其確切的類(lèi)成員資格劫谅。)
字典中的鍵值對(duì)稱(chēng)為條目见坑。每個(gè)條目由代表鍵的一個(gè)對(duì)象和作為該鍵的值的第二個(gè)對(duì)象組成。在字典中捏检,密鑰是唯一的荞驴。也就是說(shuō),單個(gè)字典中沒(méi)有兩個(gè)密鑰是相等的(由isEqual確定:)贯城。一般來(lái)說(shuō)熊楼,一個(gè)鍵可以是任何對(duì)象(只要它符合NSCopying協(xié)議,見(jiàn)下文)能犯,但是請(qǐng)注意鲫骗,使用鍵值編碼時(shí),鍵必須是一個(gè)字符串(請(qǐng)參閱訪(fǎng)問(wèn)對(duì)象屬性)踩晶。無(wú)論是鍵還是值都不為零执泰。如果您需要在字典中表示空值,則應(yīng)該使用NSNull渡蜻。
參考http://blog.csdn.net/qq244596/article/details/50687680
-
NSMutableDictionary
NSMutableDictionary是一個(gè)無(wú)序的動(dòng)態(tài)集合术吝,也可稱(chēng)之為鍵值對(duì)。與數(shù)組不同的是字典可以通過(guò)特定的key快速查找到想要的值茸苇,而不用遍歷字典排苍。所以一個(gè)唯一的key只能對(duì)應(yīng)一個(gè)值,而多個(gè)key可以對(duì)應(yīng)同一個(gè)值学密。
NSMutableDictionary類(lèi)將編程接口聲明為管理鍵和值的可變關(guān)聯(lián)的對(duì)象淘衙。 它將修改操作添加到從NSDictionary繼承的基本操作。
NSDictionary 和 NSMutableDictionary
基本用法:http://www.reibang.com/p/5b1370dd83be
-
NSEnumerator
一個(gè)抽象類(lèi)腻暮,其子類(lèi)枚舉對(duì)象的集合 依附于集合類(lèi)(NSArray,NSSet,NSDictionary),沒(méi)有用來(lái)創(chuàng)建實(shí)例的接口 對(duì)可變數(shù)組進(jìn)行枚舉操作時(shí)幔翰,不能通過(guò)添加或刪除對(duì)象這類(lèi)方式來(lái)改變數(shù)組容器。
所有創(chuàng)建方法都是??在集合類(lèi)中定義的西壮,例如NSArray遗增,NSSet和NSDictionary,它們提供了特殊的NSEnumerator對(duì)象來(lái)枚舉它們的內(nèi)容款青。例如做修,NSArray有兩個(gè)方法返回一個(gè)NSEnumerator對(duì)象:objectEnumerator和reverseObjectEnumerator。 NSDictionary也有兩個(gè)方法返回一個(gè)NSEnumerator對(duì)象:keyEnumerator和objectEnumerator。這些方法允許您分別按鍵或值枚舉字典的內(nèi)容饰及。
您將nextObject重復(fù)發(fā)送到新創(chuàng)建的NSEnumerator對(duì)象蔗坯,以使其返回原始集合中的下一個(gè)對(duì)象。當(dāng)收集用完時(shí)燎含,返回nil宾濒。枚舉器用盡后,不能“重置”它屏箍。要再次枚舉集合绘梦,您需要一個(gè)新的枚舉器。
參考:http://blog.csdn.net/at9009/article/details/7863036
-
NSDirectoryEnumerator
NSDirectoryEnumerator,目錄枚舉類(lèi),一個(gè)NSDirectoryEnumerator對(duì)象列舉了一個(gè)目錄的內(nèi)容赴魁,返回的所有文件在目錄中的路徑名卸奉,在該目錄中。這些路徑是相對(duì)于目錄而言的
參考:http://blog.csdn.net/u012519228/article/details/49451515
-
NSIndexPath
索引路徑
在列表中表示嵌套數(shù)組樹(shù)中特定位置的路徑颖御。索引路徑中的每個(gè)索引都表示從列表中的一個(gè)節(jié)點(diǎn)到另一個(gè)更深的節(jié)點(diǎn)的子數(shù)組索引榄棵。
參考 :http://www.reibang.com/p/64b68036117d
-
NSIndexSet
NSIndexSet類(lèi)代表一個(gè)不可變的獨(dú)特的無(wú)符號(hào)整數(shù)的集合,表示另一個(gè)集合中索引的唯一整數(shù)值??的不可變集合。稱(chēng)為索引,因?yàn)槭褂盟鼈兊姆绞脚斯啊_@個(gè)集合被稱(chēng)為索引集疹鳄。你不應(yīng)該使用索引集存儲(chǔ)任意集合的整數(shù)值,因?yàn)樗饕此饕判蚍秶姆绞酱鎯?chǔ)的。這使得它們更有效率比存儲(chǔ)單個(gè)整數(shù)的集合芦岂。這也意味著每個(gè)索引值指數(shù)中只能出現(xiàn)一次尚辑。通俗點(diǎn)講NSIndexSet就是一個(gè)唯一的,有序的盔腔,無(wú)符號(hào)整數(shù)
NSIndexSet類(lèi)表示一個(gè)唯一無(wú)符號(hào)整數(shù)的不可變集合杠茬,因?yàn)樗鼈儽皇褂玫姆绞蕉环Q(chēng)為索引。這個(gè)集合被稱(chēng)為索引集弛随。索引必須在范圍0 .. NSNotFound - 1瓢喉。
您可以在代碼中使用索引集來(lái)將索引存儲(chǔ)到其他數(shù)據(jù)結(jié)構(gòu)中。例如舀透,給定一個(gè)NSArray對(duì)象栓票,可以使用索引集來(lái)標(biāo)識(shí)該數(shù)組中的對(duì)象的子集。
您不應(yīng)使用索引集來(lái)存儲(chǔ)任意整數(shù)值的集合愕够,因?yàn)樗饕瘜⑺饕鎯?chǔ)為已排序的范圍走贪。這使得它們比存儲(chǔ)單個(gè)整數(shù)集合更有效率。這也意味著每個(gè)索引值只能在索引集中出現(xiàn)一次惑芭。
NSIndexSet類(lèi)的指定初始值為:init坠狡,initWithIndexesInRange:和initWithIndexSet :.
NSIndexSet和 NSMutableIndexSet
參考:http://www.reibang.com/p/84a1d5296844
-
NSMutableIndexSet
NSMutableIndexSet類(lèi)代表一個(gè)可變的獨(dú)特的無(wú)符號(hào)整數(shù)的集合,類(lèi)代表一個(gè)可變的獨(dú)特的無(wú)符號(hào)整數(shù)的集合
NSMutableIndexSet類(lèi)表示一個(gè)唯一無(wú)符號(hào)整數(shù)的可變集合,因?yàn)樗鼈儽皇褂玫姆绞蕉环Q(chēng)為索引遂跟。 這個(gè)集合被稱(chēng)為可變索引集逃沿。 有效索引的包含范圍是0 ...(NSNotFound - 1); 試圖使用這個(gè)范圍以外的索引是無(wú)效的婴渡。
可變索引集中的值總是排序的,所以添加值的順序是不相關(guān)的凯亮。
NSIndexSet和 NSMutableIndexSet
參考:http://www.reibang.com/p/84a1d5296844
-
NSSet
集合:一個(gè)靜態(tài)無(wú)序的唯一對(duì)象集合边臼。 集合(NSSet)和數(shù)組(NSArray)有相似之處,都是存儲(chǔ)不同的對(duì)象的地址假消;不過(guò)NSArray是有序的集合柠并,NSSet是無(wú)序的集合。集合是一種哈希表富拗,運(yùn)用散列算法臼予,查找集合中的元素比數(shù)組速度更快,但是它沒(méi)有順序媒峡。存儲(chǔ)的所有對(duì)象只能有唯一一個(gè),不能重復(fù)葵擎。
NSSet 和 NSMutableSet
參考:https://www.cnblogs.com/TianHero/p/5101502.html
-
NSMutableSet
集合:一個(gè)可變無(wú)序的唯一對(duì)象集合谅阿。 集合(NSSet)和數(shù)組(NSArray)有相似之處,都是存儲(chǔ)不同的對(duì)象的地址酬滤;不過(guò)NSArray是有序的集合签餐,NSSet是無(wú)序的集合。集合是一種哈希表盯串,運(yùn)用散列算法氯檐,查找集合中的元素比數(shù)組速度更快,但是它沒(méi)有順序体捏。存儲(chǔ)的所有對(duì)象只能有唯一一個(gè)冠摄,不能重復(fù)。
NSSet 和 NSMutableSet
參考:https://www.cnblogs.com/TianHero/p/5101502.html
-
NSCountedSet
將一個(gè)或多個(gè)屬性或關(guān)系設(shè)置為一個(gè)或多個(gè)值的命令几缭。
NSCountedSet對(duì)象的每個(gè)不同的對(duì)象都有一個(gè)與之相關(guān)的計(jì)數(shù)器當(dāng)對(duì)象相同的時(shí)候計(jì)數(shù)器就會(huì)加1
參考:http://blog.csdn.net/liu1039950258/article/details/48153283
謂詞---Predicates
NSPredicate類(lèi)是用來(lái)定義邏輯條件約束的獲取或內(nèi)存中的過(guò)濾搜索河泳。
可以使用謂詞來(lái)表示邏輯條件,用于描述對(duì)象持久性存儲(chǔ)在內(nèi)存中的對(duì)象過(guò)濾年栓。其實(shí)意思就是:我是一個(gè)過(guò)濾器拆挥,不符合條件的都滾開(kāi)。
-
NSExpression
NSExpression用于表示謂詞表達(dá)式某抓。比較操作在一個(gè)NSPredicate基于兩個(gè)表達(dá)式,由NSExpression類(lèi)的實(shí)例纸兔。表達(dá)式創(chuàng)建常量值,關(guān)鍵路徑,等等
NSPredicate中的比較操作基于兩個(gè)表達(dá)式,如NSExpression類(lèi)的實(shí)例所示否副。 表達(dá)式是為常量值汉矿,鍵路徑等創(chuàng)建的。
通常备禀,NSExpression類(lèi)層次結(jié)構(gòu)中任何地方都有復(fù)合API和子類(lèi)型负甸,它們只能合理地響應(yīng)該API的一個(gè)子集流强,調(diào)用一個(gè)對(duì)該子類(lèi)型沒(méi)有意義的方法將導(dǎo)致異常被拋出。
參考:http://www.reibang.com/p/3057adf8e7de
-
NSPredicate
NSPredicate是一個(gè)Foundation類(lèi)呻待,它指定數(shù)據(jù)被獲取或者過(guò)濾的方式打月。它的查詢(xún)語(yǔ)言就像SQL的WHERE和正則表達(dá)式的交叉一樣,提供了具有表現(xiàn)力的蚕捉,自然語(yǔ)言界面來(lái)定義一個(gè)集合被搜尋的邏輯條件奏篙。
NSPredicate 和 NSComparisonPredicate
參考:http://nshipster.cn/nspredicate/
-
NSComparisonPredicate
一個(gè)專(zhuān)門(mén)用于比較表達(dá)式的謂詞。
您可以使用比較謂詞來(lái)比較兩個(gè)表達(dá)式的結(jié)果迫淹。 您可以使用運(yùn)算符秘通,左表達(dá)式和右表達(dá)式創(chuàng)建比較謂詞。 您使用NSExpression類(lèi)的實(shí)例來(lái)表示表達(dá)式敛熬。 當(dāng)您評(píng)估謂詞時(shí)肺稀,它將以BOOL值的形式返回運(yùn)算符與評(píng)估表達(dá)式結(jié)果的結(jié)果。
NSPredicate 和 NSComparisonPredicate
參考:http://nshipster.cn/nspredicate/
-
NSCompoundPredicate (不是太理解看到的大神給出指示)
一個(gè)專(zhuān)門(mén)的謂詞应民,用于評(píng)估其他謂詞的邏輯組合话原。
使用NSCompoundPredicate創(chuàng)建零個(gè)或多個(gè)其他謂詞的屬性或OR復(fù)合謂詞,或者創(chuàng)建一個(gè)謂詞的NOT诲锹。 對(duì)于邏輯屬性和OR操作:一個(gè)AND謂詞沒(méi)有subpredicates評(píng)估為YES繁仁。沒(méi)有子預(yù)測(cè)的OR謂詞評(píng)估為NO。具有一個(gè)或多個(gè)子類(lèi)的復(fù)合謂詞評(píng)估其子類(lèi)的真相归园。
操作系統(tǒng)服務(wù)類(lèi)---Operating-System Services
-
NSError
獲取系統(tǒng)的錯(cuò)誤信息.系統(tǒng)有關(guān)錯(cuò)誤情況的信息黄虱,包括域,域特定的錯(cuò)誤代碼和特定于應(yīng)用程序的信息庸诱。
參考:http://www.reibang.com/p/643b4be1ca52
-
NSHost
網(wǎng)絡(luò)上單個(gè)主機(jī)的表示捻浦。主機(jī)域名
NSHost類(lèi)提供訪(fǎng)問(wèn)主機(jī)的網(wǎng)絡(luò)名稱(chēng)和地址信息的方法。 NSHost類(lèi)的實(shí)例表示網(wǎng)絡(luò)上的單個(gè)主機(jī)桥爽。使用NSHost對(duì)象獲取當(dāng)前主機(jī)的名稱(chēng)和地址默勾,并按名稱(chēng)或地址查找其他主機(jī)。
要?jiǎng)?chuàng)建NSHost對(duì)象聚谁,請(qǐng)使用currentHost母剥,hostWithAddress:或hostWithName:類(lèi)方法(不要使用alloc和init)。這些方法使用可用的網(wǎng)絡(luò)管理服務(wù)來(lái)發(fā)現(xiàn)所請(qǐng)求主機(jī)的所有名稱(chēng)和地址形导。但是环疼,他們不會(huì)嘗試聯(lián)系主機(jī)本身。這種方法避免了由于主機(jī)不可用而導(dǎo)致的不合時(shí)宜的延遲朵耕,但是可能導(dǎo)致關(guān)于主機(jī)的信息不完整炫隶。
NSHost對(duì)象包含網(wǎng)絡(luò)管理服務(wù)為給定主機(jī)發(fā)現(xiàn)的所有網(wǎng)絡(luò)地址和名稱(chēng)。每個(gè)NSHost對(duì)象可能包含多個(gè)地址阎曹,并且有多個(gè)名稱(chēng)伪阶。如果NSHost對(duì)象具有多個(gè)名稱(chēng)煞檩,則其他名稱(chēng)是同名的變體,通常是基本主機(jī)名加上完全限定的域名栅贴。
-
NSNetService
NSNetService類(lèi)代表一個(gè)網(wǎng)絡(luò)服務(wù),使用NSNetService發(fā)布這個(gè)service
NSNetService類(lèi)代表一個(gè)網(wǎng)絡(luò)服務(wù)斟湃,無(wú)論是你的應(yīng)用程序發(fā)布還是客戶(hù)端。這個(gè)類(lèi)和NSNetServiceBrowser類(lèi)使用多播DNS來(lái)向應(yīng)用程序傳遞有關(guān)網(wǎng)絡(luò)服務(wù)的信息檐薯。 NSNetService的API提供了一種方便的方式來(lái)發(fā)布應(yīng)用程序提供的服務(wù)凝赛,并解析服務(wù)的套接字地址。
使用NSNetService訪(fǎng)問(wèn)的服務(wù)類(lèi)型與使用BSD套接字直接訪(fǎng)問(wèn)的類(lèi)型相同坛缕。 HTTP和FTP是系統(tǒng)通常提供的兩種服務(wù)墓猎。 (有關(guān)公共服務(wù)和這些服務(wù)使用的端口的列表,請(qǐng)參閱文件/ etc / services赚楚。)應(yīng)用程序還可以定義自己的定制服務(wù)毙沾,以向客戶(hù)端提供特定的數(shù)據(jù)。
您可以使用NSNetService類(lèi)作為服務(wù)的發(fā)布者或服務(wù)的客戶(hù)端宠页。如果您的應(yīng)用程序發(fā)布服務(wù)左胞,您的代碼必須獲取一個(gè)端口并準(zhǔn)備一個(gè)套接字與客戶(hù)端通信。一旦你的套接字準(zhǔn)備好了勇皇,你就可以使用NSNetService類(lèi)來(lái)通知客戶(hù)你的服務(wù)已經(jīng)準(zhǔn)備好了罩句。如果您的應(yīng)用程序是網(wǎng)絡(luò)服務(wù)的客戶(hù)端焚刺,則可以直接創(chuàng)建NSNetService對(duì)象(如果您知道確切的主機(jī)和端口信息)敛摘,也可以使用NSNetServiceBrowser對(duì)象瀏覽服務(wù)。
要發(fā)布服務(wù)乳愉,請(qǐng)使用服務(wù)名稱(chēng)兄淫,域,類(lèi)型和端口信息初始化您的NSNetService對(duì)象蔓姚。所有這些信息必須對(duì)您的應(yīng)用程序創(chuàng)建的套接字有效捕虽。初始化后坡脐,調(diào)用發(fā)布方法將您的服務(wù)信息廣播到網(wǎng)絡(luò)泄私。
連接到服務(wù)時(shí),使用NSNetServiceBrowser類(lèi)來(lái)定位網(wǎng)絡(luò)上的服務(wù)并獲取相應(yīng)的NSNetService對(duì)象备闲。獲得對(duì)象后晌端,請(qǐng)調(diào)用resolveWithTimeout:方法來(lái)驗(yàn)證服務(wù)是否可用并已準(zhǔn)備好用于應(yīng)用程序。如果是恬砂,地址屬性將提供可用于連接到服務(wù)的套接字信息咧纠。
NSNetService的方法是異步運(yùn)行的,所以你的應(yīng)用程序不受網(wǎng)絡(luò)速度的影響泻骤。所有關(guān)于服務(wù)的信息都通過(guò)NSNetService對(duì)象的委托返回給你的應(yīng)用程序漆羔。您必須提供一個(gè)委托對(duì)象來(lái)響應(yīng)消息并適當(dāng)?shù)靥幚礤e(cuò)誤梧奢。
-
NSNetServiceBrowser
NSNetServiceBrowser用于監(jiān)聽(tīng)查詢(xún)網(wǎng)絡(luò)上的 service,使用多播DNS在網(wǎng)絡(luò)上查找已發(fā)布的service演痒。
服務(wù)范圍可以從標(biāo)準(zhǔn)服務(wù)(如HTTP和FTP)到由其他應(yīng)用程序定義的定制服務(wù)亲轨。您可以在代碼中使用網(wǎng)絡(luò)服務(wù)瀏覽器來(lái)獲取可訪(fǎng)問(wèn)域的列表,然后為每個(gè)發(fā)現(xiàn)的服務(wù)獲取NSNetService對(duì)象嫡霞。每個(gè)網(wǎng)絡(luò)服務(wù)瀏覽器一次執(zhí)行一個(gè)搜索瓶埋,因此如果要執(zhí)行多個(gè)同時(shí)搜索,請(qǐng)使用多個(gè)網(wǎng)絡(luò)服務(wù)瀏覽器诊沪。
網(wǎng)絡(luò)服務(wù)瀏覽器使用當(dāng)前運(yùn)行循環(huán)異步執(zhí)行所有搜索养筒,以在后臺(tái)執(zhí)行搜索。搜索結(jié)果將通過(guò)客戶(hù)端應(yīng)用程序必須提供的關(guān)聯(lián)委托對(duì)象返回端姚。搜索在后臺(tái)進(jìn)行晕粪,直到對(duì)象收到停止消息。
NSNetService 和NSNetServiceBrowser區(qū)別
參考:https://www.cnblogs.com/Mr-Ygs/p/5623422.html
比較通俗較容易理解:http://blog.csdn.net/mamong/article/details/39781117
-
NSOrthography
描述通常用于拼寫(xiě)和語(yǔ)法檢查的一段文本的語(yǔ)言?xún)?nèi)容渐裸。
一個(gè)NSOrthography實(shí)例描述:
文本包含哪些腳本
一個(gè)主導(dǎo)語(yǔ)言巫湘,可能還有其他語(yǔ)言的每個(gè)腳本。
作為整體文本的統(tǒng)治腳本和語(yǔ)言昏鹃。
腳本統(tǒng)一由標(biāo)準(zhǔn)的四字母標(biāo)簽(Latn尚氛,Grek,Cyrl等)來(lái)描述洞渤,其中Jpan和Kore標(biāo)簽通常用于日文和韓文文本阅嘶,Hans和Hant用于中文文本; 如果特定腳本不能識(shí)別,則使用標(biāo)簽Zyyy载迄。 有關(guān)國(guó)際化的更多信息讯柔,請(qǐng)參閱“國(guó)際化和本地化指南”。
語(yǔ)言由BCP-47標(biāo)簽統(tǒng)一描述护昧,最好以規(guī)范的形式表示; 如果無(wú)法確定特定的語(yǔ)言魂迄,則使用標(biāo)簽和標(biāo)簽。
-
NSProcessInfo
關(guān)于當(dāng)前進(jìn)程的信息的集合惋耙。
每個(gè)進(jìn)程都有一個(gè)共享的NSProcessInfo對(duì)象捣炬,稱(chēng)為進(jìn)程信息代理。進(jìn)程信息代理可以返回參數(shù)绽榛,環(huán)境變量湿酸,主機(jī)名和進(jìn)程名等信息。 processInfo類(lèi)方法返回當(dāng)前進(jìn)程的共享代理 - 也就是對(duì)象發(fā)送消息的進(jìn)程蒜田。
參考:http://blog.csdn.net/terrysg/article/details/50229517
-
NSRunLoop
管理輸入源的對(duì)象的編程接口稿械。
NSRunLoop對(duì)象處理來(lái)自窗口系統(tǒng)的鼠標(biāo)和鍵盤(pán)事件,NSPort對(duì)象和NSConnection對(duì)象的輸入冲粤。 一個(gè)NSRunLoop對(duì)象也處理NSTimer事件美莫。您的應(yīng)用程序既不創(chuàng)建也不顯式管理NSRunLoop對(duì)象页眯。 每個(gè)NSThread對(duì)象(包括應(yīng)用程序的主線(xiàn)程)都根據(jù)需要自動(dòng)創(chuàng)建一個(gè)NSRunLoop對(duì)象。 如果您需要訪(fǎng)問(wèn)當(dāng)前線(xiàn)程的運(yùn)行循環(huán)厢呵,則可以使用類(lèi)方法currentRunLoop進(jìn)行操作窝撵。
參考:http://www.reibang.com/p/296f182c8faaNSRunLoop
-
NSTextCheckingResult
NSTextCheckingResult類(lèi)的子類(lèi),主要用于檢測(cè)半結(jié)構(gòu)化的數(shù)據(jù):日期襟铭,地址碌奉,電話(huà)號(hào)碼,正則表達(dá)式等等寒砖。
NSTextCheckingResult的實(shí)例由NSRegularExpression類(lèi)和NSDataDetector類(lèi)返回赐劣,檢測(cè)內(nèi)容的。 在這些情況下哩都,找到的可能是正則表達(dá)式或日期魁兼,地址,電話(huà)號(hào)碼等的匹配漠嵌。
子類(lèi)NSDataDetector和NSTextCheckingResult的使用
參考:http://blog.csdn.net/lcl130/article/details/41940861
-
NSTimer
計(jì)時(shí)器在經(jīng)過(guò)一段時(shí)間后觸發(fā)咐汞,并將指定的消息發(fā)送到目標(biāo)對(duì)象。
定時(shí)器與運(yùn)行循環(huán)一起工作儒鹿。 運(yùn)行循環(huán)保持對(duì)定時(shí)器的強(qiáng)引用化撕,因此,在將定時(shí)器添加到運(yùn)行循環(huán)后约炎,您不必維護(hù)自己對(duì)定時(shí)器的強(qiáng)引
計(jì)時(shí)器不是一個(gè)實(shí)時(shí)機(jī)制植阴。 如果在長(zhǎng)時(shí)間循環(huán)調(diào)用期間發(fā)生定時(shí)器的觸發(fā)時(shí)間,或者運(yùn)行循環(huán)處于未監(jiān)視定時(shí)器的模式章钾,定時(shí)器將在下次運(yùn)行循環(huán)檢查定時(shí)器時(shí)才觸發(fā)墙贱。 因此热芹,計(jì)時(shí)器觸發(fā)的實(shí)際時(shí)間會(huì)顯著延遲
參考:http://www.reibang.com/p/3ccdda0679c1
-
NSUserDefaults
用戶(hù)默認(rèn)數(shù)據(jù)庫(kù)的接口贱傀,也可以在給定設(shè)備上跨應(yīng)用程序的調(diào)用持久地存儲(chǔ)鍵/值對(duì)。
NSUserDefaults類(lèi)提供了一個(gè)編程接口來(lái)與默認(rèn)系統(tǒng)進(jìn)行交互伊脓。默認(rèn)系統(tǒng)允許應(yīng)用程序自定義其行為以匹配用戶(hù)的偏好府寒。例如,您可以允許用戶(hù)確定應(yīng)用程序顯示的測(cè)量單位或文檔自動(dòng)保存的頻率报腔。應(yīng)用程序通過(guò)將值分配給用戶(hù)默認(rèn)數(shù)據(jù)庫(kù)中的一組參數(shù)來(lái)記錄此類(lèi)偏好株搔。這些參數(shù)被稱(chēng)為默認(rèn)值,因?yàn)樗鼈兺ǔS糜诖_定應(yīng)用程序在啟動(dòng)時(shí)的默認(rèn)狀態(tài)或默認(rèn)情況下的默認(rèn)狀態(tài)纯蛾。
在運(yùn)行時(shí)纤房,您可以使用NSUserDefaults對(duì)象來(lái)讀取應(yīng)用程序在用戶(hù)的默認(rèn)數(shù)據(jù)庫(kù)中使用的默認(rèn)值。 NSUserDefaults緩存信息以避免每次需要默認(rèn)值時(shí)打開(kāi)用戶(hù)的默認(rèn)數(shù)據(jù)庫(kù)翻诉。同步方法會(huì)按周期自動(dòng)調(diào)用炮姨,使內(nèi)存中的緩存與用戶(hù)的默認(rèn)數(shù)據(jù)庫(kù)保持同步捌刮。
NSUserDefaults類(lèi)提供了訪(fǎng)問(wèn)常見(jiàn)類(lèi)型(如浮點(diǎn)數(shù),雙精度舒岸,整數(shù)绅作,布爾值和URL)的便捷方法。一個(gè)默認(rèn)對(duì)象必須是一個(gè)屬性列表 - 也就是蛾派,一個(gè)實(shí)例(或集合俄认,實(shí)例的組合):NSData,NSString洪乍,NSNumber眯杏,NSDate,NSArray或NSDictionary壳澳。如果要存儲(chǔ)任何其他類(lèi)型的對(duì)象役拴,則通常應(yīng)將其存檔以創(chuàng)建NSData的實(shí)例。
即使將可變對(duì)象設(shè)置為值钾埂,從NSUserDefaults返回的值也是不可變的河闰。例如,如果將可變字符串設(shè)置為“MyStringDefault”的值褥紫,則稍后使用stringForKey檢索的字符串將是不可變的姜性。
默認(rèn)數(shù)據(jù)庫(kù)是為每個(gè)用戶(hù)自動(dòng)創(chuàng)建的。 NSUserDefaults類(lèi)目前不支持每個(gè)主機(jī)的首選項(xiàng)髓考。為此部念,您必須使用CFPreferences API(請(qǐng)參閱首選項(xiàng)實(shí)用程序)。但是氨菇,NSUserDefaults正確讀取每個(gè)主機(jī)的首選項(xiàng)儡炼,因此您可以安全地將CFPreferences代碼與NSUserDefaults代碼混合。
參考:https://www.cnblogs.com/zhun/p/5602048.html
文件系統(tǒng)----File System
-
NSBundle
bundle 是一個(gè)目錄查蓉,其中包含了程序會(huì)使用到的資源乌询,這些資源包含了圖像,聲音豌研,編譯好的代碼妹田,nib文件(用戶(hù)也會(huì)把bundle稱(chēng)plug-in),對(duì)應(yīng)bundle鹃共,cocoa提供了類(lèi)NSBundle 存儲(chǔ)在磁盤(pán)上的捆綁目錄中的代碼和資源鬼佣。
蘋(píng)果使用捆綁來(lái)代表應(yīng)用程序,框架霜浴,插件和許多其他特定類(lèi)型的內(nèi)容晶衷。軟件包將其包含的資源組織到定義明??確的子目錄中,軟件包結(jié)構(gòu)因平臺(tái)和軟件包的類(lèi)型而異。通過(guò)使用捆綁對(duì)象晌纫,您可以在不知道捆綁的結(jié)構(gòu)的情況下訪(fǎng)問(wèn)捆綁的資源驻龟。捆綁對(duì)象提供一個(gè)單一的界面來(lái)定位項(xiàng)目,考慮到捆綁結(jié)構(gòu)缸匪,用戶(hù)偏好翁狐,可用的本地化和其他相關(guān)因素。
任何可執(zhí)行文件都可以使用一個(gè)bundle對(duì)象來(lái)定位資源凌蔬,可以在應(yīng)用程序的bundle中找到露懒,也可以在位于別處的已知bundle中找到。您不使用捆綁對(duì)象來(lái)查找容器目錄中的文件或文件系統(tǒng)的其他部分中的文件砂心。
使用捆綁對(duì)象的一般模式如下:
為預(yù)期的捆綁目錄創(chuàng)建一個(gè)捆綁對(duì)象懈词。
使用捆綁對(duì)象的方法來(lái)定位或加載所需的資源。
使用其他系統(tǒng)API與資源進(jìn)行交互辩诞。
某些類(lèi)型的常用資源可以在沒(méi)有捆綁的情況下找到并打開(kāi)坎弯。例如,加載圖像時(shí)译暂,將圖像存儲(chǔ)在資產(chǎn)目錄中抠忘,并使用UIImage或NSImage的imageNamed:方法加載它們。同樣外永,對(duì)于字符串資源崎脉,您可以使用NSLocalizedString來(lái)加載單個(gè)字符串,而不是自己加載整個(gè).strings文件
沙河和NSBundle的聯(lián)系
參考:http://www.reibang.com/p/34cda6a121db
參考用法:http://blog.csdn.net/mylizh/article/details/38662209
-
NSFileHandle
NSFileHandle 此類(lèi)主要是對(duì)文件內(nèi)容進(jìn)行讀取和寫(xiě)入操作伯顶,文件描述符的面向?qū)ο蟮陌b器
可以使用文件句柄對(duì)象來(lái)訪(fǎng)問(wèn)與文件囚灼,套接字,管道和設(shè)備關(guān)聯(lián)的數(shù)據(jù)祭衩。對(duì)于文件灶体,您可以在文件中讀取,寫(xiě)入和查找掐暮。對(duì)于套接字蝎抽,管道和設(shè)備兄纺,可以使用文件句柄對(duì)象來(lái)監(jiān)視設(shè)備并異步處理數(shù)據(jù)鼎姊。
NSFileHandle的大多數(shù)創(chuàng)建方法都會(huì)使文件句柄對(duì)象獲取相關(guān)文件描述符的所有權(quán)。這意味著文件句柄對(duì)象都會(huì)創(chuàng)建文件描述符,并且負(fù)責(zé)在稍后關(guān)閉它衷戈,通常在文件句柄對(duì)象本身被釋放的時(shí)候。如果您想使用與您創(chuàng)建的文件描述文件句柄對(duì)象层坠,請(qǐng)使用initWithFileDescriptor:方法或使用initWithFileDescriptor:closeOnDealloc:方法殖妇,并傳遞NO的標(biāo)志參數(shù)。
運(yùn)行循環(huán)注意事項(xiàng)
使用文件句柄對(duì)象與套接字異步通信時(shí)破花,必須從具有活動(dòng)運(yùn)行循環(huán)的線(xiàn)程啟動(dòng)相應(yīng)的操作谦趣。盡管讀取疲吸,接受和等待操作本身是在后臺(tái)線(xiàn)程上異步執(zhí)行的,但文件句柄使用運(yùn)行循環(huán)源來(lái)監(jiān)視操作并適當(dāng)?shù)赝ㄖ拇a前鹅。因此摘悴,必須從應(yīng)用程序的主線(xiàn)程或從已配置運(yùn)行循環(huán)的任何線(xiàn)程中調(diào)用這些方法,并使用它們來(lái)處理事件舰绘。
參考:http://www.reibang.com/p/d49a00200586
-
NSFileManager
NSFileMange 此類(lèi)主要是對(duì)文件進(jìn)行的操作以及文件信息的獲取
NSFileManager對(duì)象允許您檢查文件系統(tǒng)的內(nèi)容并對(duì)其進(jìn)行更改蹂喻。 NSFileManager類(lèi)提供了對(duì)適用于大多數(shù)類(lèi)型文件相關(guān)操作的共享文件管理器對(duì)象的方便訪(fǎng)問(wèn)。文件管理器對(duì)象通常是與文件系統(tǒng)交互的主要模式捂寿。您可以使用它來(lái)查找口四,創(chuàng)建,復(fù)制和移動(dòng)文件和目錄秦陋。您還可以使用它來(lái)獲取有關(guān)文件或目錄的信息或更改其某些屬性蔓彩。
指定文件的位置時(shí),可以使用NSURL或NSString對(duì)象驳概。通常優(yōu)先使用NSURL類(lèi)來(lái)指定文件系統(tǒng)項(xiàng)目赤嚼,因?yàn)樗鼈兛梢栽趦?nèi)部將路徑信息轉(zhuǎn)換為更高效的表示。您也可以從NSURL對(duì)象獲取書(shū)簽顺又,該書(shū)簽類(lèi)似于別名探膊,并且提供了更確定的方式來(lái)查找文件或目錄。
如果正在移動(dòng)待榔,復(fù)制逞壁,鏈接或刪除文件或目錄,則可以使用委托與文件管理器對(duì)象一起來(lái)管理這些操作锐锣。代表的作用是確認(rèn)操作腌闯,并決定是否在發(fā)生錯(cuò)誤時(shí)繼續(xù)。在macOS 10.7及更高版本中雕憔,委托必須符合NSFileManagerDelegate協(xié)議姿骏。
參考: http://www.reibang.com/p/c683a97d2ee5
-
NSStream
NSStream是一個(gè)抽象基類(lèi),定義了所有流對(duì)象的基礎(chǔ)接口和屬性斤彼。NSInputStream和NSOutputStream繼承自NSStream分瘦,實(shí)現(xiàn)了輸入流和輸出流的默認(rèn)行為。下圖描述了流的應(yīng)用場(chǎng)景:
-
NSInputStream
NSInputStream 對(duì)應(yīng)的是讀文件琉苇,所以要記住它是要將文件的內(nèi)容讀到內(nèi)存(你聲明的一段buffer)里嘲玫,用于讀取文件
-
NSOutputStream
NSOutputStream 對(duì)應(yīng)的是寫(xiě)文件,它是要將已存在的內(nèi)存(buffer)里的數(shù)據(jù)寫(xiě)入文件, 用于讀取文件
流的寫(xiě)入讀取參考:http://www.reibang.com/p/522ad40f96e1