diff options
Diffstat (limited to 'examples/protobuf/addressbook_objc')
-rw-r--r-- | examples/protobuf/addressbook_objc/addressbook_objc.qbs | 9 | ||||
-rw-r--r-- | examples/protobuf/addressbook_objc/main.m | 94 |
2 files changed, 48 insertions, 55 deletions
diff --git a/examples/protobuf/addressbook_objc/addressbook_objc.qbs b/examples/protobuf/addressbook_objc/addressbook_objc.qbs index 35409c4db..fe819d77a 100644 --- a/examples/protobuf/addressbook_objc/addressbook_objc.qbs +++ b/examples/protobuf/addressbook_objc/addressbook_objc.qbs @@ -7,8 +7,9 @@ CppApplication { Depends { name: "cpp" } Depends { name: "protobuf.objc"; required: false } - files: [ - "../shared/addressbook.proto", - "main.m", - ] + Group { + cpp.automaticReferenceCounting: true + files: "main.m" + } + files: "../shared/addressbook.proto" } diff --git a/examples/protobuf/addressbook_objc/main.m b/examples/protobuf/addressbook_objc/main.m index 0c330a6c5..5e21fa060 100644 --- a/examples/protobuf/addressbook_objc/main.m +++ b/examples/protobuf/addressbook_objc/main.m @@ -55,8 +55,7 @@ int printUsage(char *argv0) { NSString *programName = [[NSString alloc] initWithUTF8String:argv0]; - NSLog(@"%@", [[NSString alloc] initWithFormat:@"Usage: %@ add|list ADDRESS_BOOK_FILE", programName]); - [programName release]; + NSLog(@"Usage: %@ add|list ADDRESS_BOOK_FILE", programName); return -1; } @@ -65,9 +64,9 @@ NSString *readString(NSString *promt) NSLog(@"%@", promt); NSFileHandle *inputFile = [NSFileHandle fileHandleWithStandardInput]; NSData *inputData = [inputFile availableData]; - NSString *result = [[[NSString alloc]initWithData:inputData encoding:NSUTF8StringEncoding] autorelease]; - result = [[result stringByTrimmingCharactersInSet: - [NSCharacterSet whitespaceAndNewlineCharacterSet]] autorelease]; + NSString *result = [[NSString alloc] initWithData:inputData encoding:NSUTF8StringEncoding]; + result = [result stringByTrimmingCharactersInSet: + [NSCharacterSet whitespaceAndNewlineCharacterSet]]; return result; } @@ -98,7 +97,7 @@ void promptForAddress(Person* person) else if ([type compare:@"work"] == NSOrderedSame) phoneNumber.type = Person_PhoneType_Work; else - NSLog(@"%@", @"Unknown phone type. Using default."); + NSLog(@"Unknown phone type. Using default."); [person.phonesArray addObject:phoneNumber]; } @@ -107,20 +106,15 @@ void promptForAddress(Person* person) // Iterates though all people in the AddressBook and prints info about them. void listPeople(AddressBook *addressBook) { - NSArray *people = addressBook.peopleArray; - for (unsigned i = 0; i < [people count]; i++) { - Person *person = [people objectAtIndex:i]; - - NSLog(@"%@", [[[NSString alloc] initWithFormat:@"Person ID: %d", person.id_p] autorelease]); - NSLog(@"%@", [[[NSString alloc] initWithFormat:@"Person name: %@", person.name] autorelease]); + for (Person *person in addressBook.peopleArray) { + NSLog(@"Person ID: %d", person.id_p); + NSLog(@"Person name: %@", person.name); if ([person.email length] != 0) { - NSLog(@"%@", [[[NSString alloc] initWithFormat:@"E-mail address: %@", person.email] autorelease]); + NSLog(@"E-mail address: %@", person.email); } - NSArray *phones = person.phonesArray; - for (unsigned j = 0; j < [phones count]; j++) { - Person_PhoneNumber *phoneNumber = [phones objectAtIndex:j]; + for (Person_PhoneNumber *phoneNumber in person.phonesArray) { NSString *phonePrefix; switch (phoneNumber.type) { @@ -138,7 +132,7 @@ void listPeople(AddressBook *addressBook) break; } - NSLog(@"%@", [[[NSString alloc] initWithFormat:@" %@ #: %@", phonePrefix, phoneNumber.number] autorelease]); + NSLog(@" %@ #: %@", phonePrefix, phoneNumber.number); } printf("\n"); } @@ -149,43 +143,41 @@ int main(int argc, char *argv[]) if (argc != 3) return printUsage(argv[0]); - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - - AddressBook *addressBook;// = [AddressBook alloc]; - NSString *filePath = [[[NSString alloc] initWithUTF8String:argv[2]] autorelease]; - - // Read the existing address book. - NSData *data = [NSData dataWithContentsOfFile:filePath]; - if (!data) { - NSLog(@"%@", [[NSString alloc] initWithFormat:@"%@ : File not found.", filePath]); - addressBook = [[[AddressBook alloc] init] autorelease]; - } else { - NSError *error; - addressBook = [AddressBook parseFromData:data error:&error]; - if (!addressBook) { - NSLog(@"%@", @"Failed to parse address book."); - [pool drain]; - return -1; + @autoreleasepool + { + AddressBook *addressBook; + NSString *filePath = [[NSString alloc] initWithUTF8String:argv[2]]; + + // Read the existing address book. + NSData *data = [NSData dataWithContentsOfFile:filePath]; + if (!data) { + NSLog(@"%@ : File not found.", filePath); + addressBook = [[AddressBook alloc] init]; + } else { + NSError *error; + addressBook = [AddressBook parseFromData:data error:&error]; + if (!addressBook) { + NSLog(@"Failed to parse address book."); + return -1; + } } - } - if (strcmp(argv[1], "add") == 0) { - // Add an address. - Person *person = [[Person alloc] init]; - promptForAddress(person); - [addressBook.peopleArray addObject:person]; + if (strcmp(argv[1], "add") == 0) { + // Add an address. + Person *person = [[Person alloc] init]; + promptForAddress(person); + [addressBook.peopleArray addObject:person]; - if (!data) { - NSLog(@"%@", @"Creating a new file."); + if (!data) { + NSLog(@"Creating a new file."); + } + [[addressBook data] writeToFile:filePath atomically:YES]; + } else if (strcmp(argv[1], "list") == 0) { + listPeople(addressBook); + } else { + return printUsage(argv[0]); } - [[addressBook data] writeToFile:filePath atomically:YES]; - } else if (strcmp(argv[1], "list") == 0) { - listPeople(addressBook); - } else { - [pool drain]; - return printUsage(argv[0]); - } - [pool drain]; - return 0; + return 0; + } } |