NSBundle的使用細(xì)節(jié)

在讀取本地文件時(shí),我們一般都會(huì)直接考慮到NSBundle,因?yàn)樗侵府?dāng)前目錄,而通常我們有時(shí)也會(huì)考慮到NSSearchPathForDirectoriesInDomains來(lái)獲取程序目錄,從而達(dá)到讀取某一指定文件。
1、使用NSBundle讀取文件

//dataPath 表示當(dāng)前目錄下指定的一個(gè)文件 data.plist 
NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"]; 
NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"Data.plist" ofType:nil];
// 如果plist文件中ROOT的類型是Array
NSArray *array = [NSArray arrayWithContentsOfFile:dataPath];
// 如果plist文件中ROOT的類型為Dictionary
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:dataPath]; 

2、直接使用NSSearchPathForDirectoriesInDomains讀取文件

//filePath 表示程序目錄下指定文件 
NSString *filePath = [self documentsPath:@"usefile.txt"]; 
- (NSString *)documentsPath:(NSString *)fileName
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDitectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths firstObjects];
  return [documentsDiretory stringByAppendingPathComponent:fileName];
}

注意點(diǎn),在這里文件名可能在賦值的時(shí)候不知不覺(jué)就添加進(jìn)了前后不必要的空格,因此在讀取文件指定目錄時(shí),需要將它去空格:

// 去左右空格
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
// 去掉所有不必要的空格
NSString *strUrl = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];

我們?cè)诳偨Y(jié)的時(shí)候,適當(dāng)?shù)目梢允褂靡韵路椒▉?lái)討論或解決問(wèn)題:
【問(wèn)題分析】
1、使用NSString中stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右兩邊的空格;
2、使用NSString *strUrl = [urlString stringByReplacingOccurrencesOfString:@" " withString:@""];可以去掉空格,注意此時(shí)生成的strUrl是autorelease屬性的,不要妄想對(duì)strUrl進(jìn)行release操作。

【問(wèn)題小結(jié)】
用stringByReplacingOccurrencesOfString方法去掉空格,實(shí)際上只是做了字符替換操作,除了空格還可以替換其它字符。目前該方法只使用了一次,還不能確定該方法的副作用。

// 在讀文件時(shí),看文件的根目錄是什么類型的,然后用什么類型來(lái)接住它。

圖1

就比如說(shuō)圖1,需要用到字典類型來(lái)接住它。
NSDictionary

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 100,608評(píng)論 9 468
  • 最近一朋友正準(zhǔn)備跳槽,就從各處搜索整理一些基礎(chǔ),便于朋友復(fù)習(xí),也便于自己復(fù)習(xí)查看. 1. 回答person的ret...
    smile麗語(yǔ)閱讀 1,901評(píng)論 0 7
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,926評(píng)論 25 709
  • 父母吵架。 無(wú)數(shù)次。 最嚴(yán)重一次我媽媽差點(diǎn)斷氣,我爸去醫(yī)院縫針,差點(diǎn)還是因?yàn)槲冶灰虌層玫都苤?媽媽一直很要強(qiáng),腦...
    沈晨虞閱讀 284評(píng)論 0 0
  • 自我知道讀書(shū)是一件有趣的事情的時(shí)候,已經(jīng)是大學(xué)三年級(jí)了。那時(shí)候也不懂讀書(shū)的方法,只是胡亂讀一些自己感興趣的書(shū),但是...
    子向往閱讀 1,178評(píng)論 0 0

友情鏈接更多精彩內(nèi)容