“Bundesverfassung” App released

Posted by admin | Software,iPhone | Wednesday 13 January 2010 15:19

“Bundesverfassung” enthält die Bundesverfassung der Schweizerischen Eidgenossenschaft vom 27. September 2009 in Deutsch, Französisch, Italienisch und Englisch. Die Sprache kann jederzeit geändert werden. Einzelne Artikel können in einer extra Favoritenliste gespeichert werden. Eine Suche über die Artikelnamen ist möglich.

avail_on_app_store2

Share/Save/Bookmark

“Bundestag” App released

Posted by admin | Software,iPhone | Wednesday 13 January 2010 14:41

Bundestag bietet einen Überblick über alle 622 Mitglieder des 17. deutschen Bundestags.

Aufgelistet nach Fraktionen, Bundesländern sowie Wahlkreisen. Zusätzlich ist eine Gesamtliste integriert.

Zu jedem Mitglied gibt es eine Kurzbiografie und ein Foto. Weiterhin können Notizen zu jedem Abgeordneten angelegt werden.

avail_on_app_store2

Share/Save/Bookmark

NSString Templating

Posted by admin | Development,Objective-C | Sunday 3 January 2010 22:19

Ich hab nach einem einfachen Template System gesucht das mit NSStrings funktioniert. Ich konnte zwar diesen älteren Blogeintrag finden aber das verlinkte Disk-Image war leider nicht mehr auf dem Server zu finden. Da ich die Idee aber sehr gut fand habe ich das Interface hier einmal nachgebaut.
NSString+Template.h

//
//  NSString+Template.h
//
//  Created by Danny Thüring on 12/25/09.
//  Copyright 2009 Danny Thuering. All rights reserved.
//
 
#import 
 
@interface NSString (Template)
 
- (NSString*) stringByParsingTagsWithStartDelimeter:(NSString*)startDelim endDelimeter:(NSString*)endDelim usingObject:(id)object;
 
@end

NSString+Template.m

//
//  NSString+Template.m
//
//  Created by Danny Thüring on 12/25/09.
//  Copyright 2009 Danny Thuering. All rights reserved.
//
 
#import "NSString+Template.h"
 
@implementation NSString (Template)
 
- (NSString*) stringByParsingTagsWithStartDelimeter:(NSString*)startDelim endDelimeter:(NSString*)endDelim usingObject:(id)object {
	NSScanner *theScanner;
	NSString *text = nil;
	NSMutableString *workString = [[self mutableCopy] autorelease];
 
	theScanner = [NSScanner scannerWithString:workString];
 
	while([theScanner isAtEnd] == NO) {
		[theScanner scanUpToString:startDelim intoString:NULL];
		[theScanner scanUpToString:endDelim intoString:&text];
		NSMutableString *tmp = [text mutableCopy];
		[tmp appendString:endDelim];
		text = [text stringByReplacingOccurrencesOfString:startDelim withString:@""];
 
		workString = [[workString stringByReplacingOccurrencesOfString:tmp withString:[object valueForKey:text]] mutableCopy];
		[tmp release];
	}
 
	return workString;}
 
@end

Das NSString Objekt wird dabei durch Categories um die Funktion stringByParsingTagsWithStartDelimeter:endDelimeter:usingObject:
erweitert. Das NSString Objekt sollte dabei das Template enthalten. Die zu ersetzenden Felder müssen mit einem Start- und Endbegrenzer eingefasst sein. Zum Beispiel:

<$ text />

In dem Fall sollte @”<$ ” und @” />” als Begrenzer angegeben werden. Als Objekt kann dann ein NSDictionary übergeben werden, dass unter dem Key “text” dann den zu ersetzenden Eintrag erhält. Es können aber auch andere Objekte benutzt werden die den Wert durch Key-Value-Programmierung zurückliefern.

Share/Save/Bookmark