Erste Gehversuche mit Xcode

by Flo 18. July 2008 11:40
Seit einiger Zeit hatte ich bereits vor, mal ein Programm für den Mac zu schreiben bzw. mir Xcode, Cocoa & Objective-C anzusehen und mir so erstmal eine Basis zu schaffen.

Nachdem ich kürzlich bei Twitter nach guter Literatur zu diesem Thema gefragt habe und Gernot mir "Cocoa Programming for Mac OS X" von Aaron Hillegass empfohlen hat, habe ich aus der Not heraus und um die Zeit bis das Buch hier ist einfach mal bei YouTube geguckt und ein paar brauchbare Tutorials gefunden, die mir zu meinem ersten Erfolg verholfen haben. :-)

Ein ganz gutes Beispiel hat z.B. 101Nexes101 (auf Englisch) mit seinem Kontakt-Ersteller hochgeladen. In der dreiteiligen Serie erklärt er, wie man ein kleines Tool unter der Verwendung der API vom Adressbuch baut, mit dem man dann einen einfachen Kontakt in seinem eigenen Adressbuch anlegen kann.







Ich hatte vorher noch nie Objective-C-Code gesehen und muss sagen, dass es bestimmt 'ne Weile braucht, bis ich mich daran gewöhnt habe. C# sieht ja doch noch mal ein bisschen anders aus. ;-) Die Methode die für das Anlegen verantwortlich ist, sieht hier zum Beispiel so aus:
-(IBAction)addUser:(id)sender
{
NSMutableDictionary *homeAddr, *workAddr;
ABMutableMultiValue *multivalue;
NSString *nameOne, *nameTwo;

nameOne = [firstName stringValue];
nameTwo = [lastName stringValue];

ABAddressBook *ab = [ABAddressBook sharedAddressBook];

ABPerson *person = [[ABPerson alloc] init];
[person setValue:nameOne forProperty:kABFirstNameProperty];
[person setValue:nameTwo forProperty:kABLastNameProperty];

homeAddr = [NSMutableDictionary dictionary];
[homeAddr setObject:@"45 main st" forKey:kABAddressStreetKey];
[homeAddr setObject:@"Seattle" forKey:kABAddressCityKey];
[homeAddr setObject:@"Washington" forKey:kABAddressStateKey];

workAddr = [NSMutableDictionary dictionary];
[workAddr setObject:@"23 claire st" forKey:kABAddressStreetKey];
[workAddr setObject:@"Redmond" forKey:kABAddressCityKey];
[workAddr setObject:@"Washington" forKey:kABAddressStateKey];

multivalue = [[ABMutableMultiValue alloc] init];
[multivalue addValue:homeAddr withLabel:kABAddressHomeLabel];
[multivalue addValue:workAddr withLabel:kABAddressWorkLabel];

[person setValue:multivalue forProperty:kABAddressProperty];

[multivalue release];

if ([ab addRecord:person])
if ([ab save])
[complete setStringValue:@"success!"];

[person release];
}
Wenn ihr das selbst ausprobieren, aber nicht selbst runtertippen wollt, könnt ihr hier mein Projekt-File runterladen:

Create Contact.zip (2,25 mb)

Anmerkung: Im Video spricht er, wenn er vom Interface redet, immer von dem sog. *.nib-File. In meinem Projekt ist es das *.xib-File. 

Tags: , ,

Apple

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

Über mich

Ich bin freiberuflicher Softwareentwickler (.NET, Cocoa, Webentwicklung) und versuche mich als hobbymäßig an der Fotografie.

Seit 1. Oktober 2007 studiere ich in an der Georg-Simon-Ohm-Hochschule in Nürnberg Wirtschaftsinformatik.

Calendar

<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar