2012-07-03 19 views
0

就NSString而言,是否有限制?我正在使用以下幾行代碼來讀取文件edit.txt的內容,但saveString無法包含我的.txt文件的所有內容。NSString的大小 - Objective C

NSString *savedDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; 

//NSString *savedeDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

NSString *saveFilePath = [savedDir stringByAppendingPathComponent:@"Root"]; 
saveFilePath = [saveFilePath stringByAppendingPathComponent:savedName]; 
saveFilePath = [saveFilePath stringByAppendingPathComponent:@"edit.txt"]; 
NSString *saveString = [NSString stringWithContentsOfFile:saveFilePath encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"saveString is :: %@ savedSpaceName : %@ savefilepath : %@ ", saveString, savedName, saveFilePath); 

是否存在與NSString大小有關的問題?我無法弄清楚。有人可以給我一個解釋或幫助我弄清楚。感謝致敬。

+0

你確定這個文件存在嗎? –

+0

saveString是否包含一些文本,或者不包含任何文本? – sosborn

+0

你會得到什麼輸出? –

回答

2

我會假設NSString的硬限制將是NSUIntegerMax個字符,因爲NSString的索引和尺寸相關的方法返回一個NSUInteger。由於目前能夠運行的所有設備都是32位,這意味着NSUIntegerMax是2^32-1,NSString可以容納超過42億字符。

據我所知,實際限制要小得多 - 特別是在iOS設備上,在NSString中遇到任何硬性限制之前,您會耗盡內存。

所以你的問題是別的!

+0

問題是什麼呢?我只有一些測試是NSLogged。 – kamalbhai

+0

我用我的電腦上的示例應用程序嘗試了您的代碼,其工作完美... –

+1

嘗試將文件直接放在文檔目錄中,而不是將其放入根目錄中,我這樣做! –