Tuesday, May 14, 2013

NSString initWithContentsOfFile example ios

initWithContentsOfFile: encoding: error:

Returns an NSString object initialized by reading data from the file at a given path using a given encoding.
- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError**)error
Parameters of [NSString initWithContentsOfFile]
A path to a file.
The encoding of the file at path.
If an error occurs, upon return contains an NSError object that describes the problem. If you are not interested in possible errors, pass in NULL.
Return Value of [NSString initWithContentsOfFile]
An NSString object initialized by reading data from the file named by path using the encoding, enc. The returned object may be different from the original receiver. If the file can’t be opened or there is an encoding error, returnsnil.
Example of [NSString initWithContentsOfFile]
NSStringEncoding enc;

NSString *result = [[NSString alloc] initWithContentsOfFile:fileName
                    usedEncoding: &enc

// Do something with the information about the encoding used
if ( enc == NSUTF8StringEncoding ) {
     // ...

return result;
Example of [NSString initWithContentsOfFile]
    NSString *path = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"asc"];
    path = [path stringByExpandingTildeInPath];
    NSString *fileString = [NSString initWithContentsOfFile:path];
Example of [NSString initWithContentsOfFile]
// Fill myString with questions from the .txt file and then read .txt file
NSString *filePath = whatFile; 
NSStringEncoding encoding;
NSError *error;
NSString *myString = [[NSString alloc] initWithContentsOfFile:filePath usedEncoding:&encoding error:&error];

if (!myString) {
  myString = [[NSString alloc] encoding:NSUTF8StringEncoding error:&error]

if (!myString) {
  myString = [[NSString alloc] encoding:NSISOLatin1StringEncoding error:&error]

if (!myString) {
  NSLog(@"error: %@", error);

// Load array
NSArray* myArray = [myString componentsSeparatedByString:@"\r"];
NSLog (@"\n \n Number of elements in myArray = %i", [myArray count]);