Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
659 views
in Technique[技术] by (71.8m points)

objective c - Cocoa-Touch - Loading a text file into an array

Whats wrong with my code.. I want it to read a text file like

Item1

Item2

Item3

Item4

Item5

and parse it into an array so each line is a separate object in thus array.

When you check the console it prints (null)

-(void)parseIntoArray{ //parse the files into seprate arrays.
    allPools = [[NSMutableArray alloc] initWithContentsOfFile:@"ALL_POOLS_NAMES"];
    NSLog(@"%@",allPools);
}

I put the txt file in my project and copied it to destination.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Firstly, can you verify that the file exists where you are looking and is readable? Use

[[NSFileManager defaultManager] isReadableFileAtPath:aPath];

Secondly, what is in your file. The behaviour of initWithContentsOfFile:

The array representation in the file identified by aPath must contain only property list objects (NSString, NSData, NSArray, or NSDictionary objects).

Is your file a valid plist xml file?

InResponse

You cannot use the NSArray constructor initWithContentsOfFile: to parse a regular text file.

Instead you can read the file content into memory and parse it yourself into an array. For your example you could use

//pull the content from the file into memory
NSData* data = [NSData dataWithContentsOfFile:aPath];
//convert the bytes from the file into a string
NSString* string = [[[NSString alloc] initWithBytes:[data bytes]
                                            length:[data length] 
                                          encoding:NSUTF8StringEncoding] autorelease];

//split the string around newline characters to create an array
NSString* delimiter = @"
";
NSArray* items = [string componentsSeparatedByString:delimiter];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...