Objective-C

Splitting NSString by characters

NSArray *parts = [string componentsSeparatedByString:@","];
for(NSString *aPart in parts)
{
    //Do something with each part
}

Splitting NSString by \r and \r\n

NSArray *lines = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

Case-insensitive compare

if ([string1 caseInsensitiveCompare:someString2]==NSOrderedSame) { }

Parsing XML

NSString * xml = [someXMLString;
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSXMLParser * parser = [[NSXMLParser alloc] initWithData:[xml dataUsingEncoding:NSUTF8StringEncoding]];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
[parser release];
[pool release];
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
	[currentContent setString:@""];
	if ([elementName isEqualToString:@"Cell"])
	{
           parsingCell = [Cell new];
           return;
        }

}

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
	[currentContent appendString:string];
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
	//NSLog(@"end:%@",elementName);
	if ( [elementName isEqualToString:@"Cell"])
	{
		[self setCell:parsingCell atX:parsingCell.colX atY:parsingCell.rowY];
		//[grid addObject:parsingCell];
	}
	else
	{
		[parsingCell setCellValue:[[currentContent stringByAppendingString:@""] retain] key:elementName];
	}
}

- (void) parserDidEndDocument:(NSXMLParser *)parser
{

}

Leave a Reply