object list_t
list_t
library in
Objective-C.
list.h
and implementation list.m
files
for the list in Objective-C.
main.m
file works unaltered:
#import <Foundation/Foundation.h>
#import <stdio.h>
#import <string.h>
#import <list.h>
#define NAME_LEN 16
// data_t interface and implementation go here
//---- program section ----
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *str;
int num;
char nam[NAME_LEN];
list_t *list = [(list_t *)[list_t alloc] init];
data_t *data = nil;
NSLog(@"main start");
while(scanf("%s %d",nam,&num) == 2) {
fprintf(stderr,"%s %d\n",nam,num);
//str = [[NSString alloc] initWithCString: nam]; // deprecated, do not use
str = [[NSString alloc] initWithUTF8String: nam];
// cast sender to proper class type eliminates warning about amgiguous init
[list add: [(data_t *)[data_t alloc] init: str: num]];
}
[list reset];
NSLog(@"printing list");
while(![list end]) {
[[list data] print: stderr];
[list next];
}
[list reset];
NSLog(@"popping list");
[[[list pop] print: stderr] release];
NSLog(@"printing list");
while(![list end]) {
[[list data] print: stderr];
[list next];
}
NSLog(@"deleting list");
[list reset];
while(![list end]) [[list pop] release];
NSLog(@"printing list");
while(![list end]) {
[[list data] print: stderr];
[list next];
}
NSLog(@"deleting list again");
[list reset];
while(![list end]) [[list pop] release];
NSLog(@"printing list again");
while(![list end]) {
[[list data] print: stderr];
[list next];
}
[pool drain];
return 0;
}
Mike 1234 Bill 3212 Sarah 1321 John 1021 Carol 3223 Debbie 4231 Gary 9321 Ann 1231 Dale 7231 Lynn 8133 Patty 9999
./main < listdata.txt
2013-01-16 16:12:17.050 main[61387:903] main start Mike 1234 Bill 3212 Sarah 1321 John 1021 Carol 3223 Debbie 4231 Gary 9321 Ann 1231 Dale 7231 Lynn 8133 Patty 9999 2013-01-16 16:12:17.052 main[61387:903] printing list Mike 1234 Bill 3212 Sarah 1321 John 1021 Carol 3223 Debbie 4231 Gary 9321 Ann 1231 Dale 7231 Lynn 8133 Patty 9999 2013-01-16 16:12:17.053 main[61387:903] popping list Mike 1234 2013-01-16 16:12:17.053 main[61387:903] printing list Bill 3212 Sarah 1321 John 1021 Carol 3223 Debbie 4231 Gary 9321 Ann 1231 Dale 7231 Lynn 8133 Patty 9999 2013-01-16 16:12:17.053 main[61387:903] deleting list 2013-01-16 16:12:17.054 main[61387:903] printing list 2013-01-16 16:12:17.054 main[61387:903] deleting list again 2013-01-16 16:12:17.055 main[61387:903] printing list again
tar.gz
archive of your lab08/ directory, including:
README
file containing
Makefile
.h
headers and .c
source)
make clean
before tar
)
submit
notes.