#include <stdio.h>
/*
* The next #include line is generally present in all Objective-C
* source files that use GNUstep. The Foundation.h header file
* includes all the other standard header files you need.
*/
#include <Foundation/Foundation.h>
void
describeArray (NSArray *array)
{
int i, count;
count = [array count];
for (i = 0; i < count; i++)
{
NSLog (@"Object at index %d is: %@",
i, [array objectAtIndex: i]);
}
}
void
describeArrayWithEnumerator (NSArray *array)
{
NSEnumerator *enumerator;
NSObject *obj;
enumerator = [array objectEnumerator];
while ((obj = [enumerator nextObject]) != nil)
{
NSLog (@"Next Object is: %@", obj);
}
}
void
describeDictionary (NSDictionary *dict)
{
NSArray *keys;
int i, count;
id key, value;
keys = [dict allKeys];
count = [keys count];
for (i = 0; i < count; i++)
{
key = [keys objectAtIndex: i];
value = [dict objectForKey: key];
NSLog (@"Key: %@ for value: %@", key, value);
}
}
/*
* The main() function: pass a message to the Test class
* and print the returned string.
*/
int main(void)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
#if TRUE
NSString *name = @"Nicola";
int age = 25;
NSString *message;
message = [NSString stringWithFormat: @"Your age is %d", age];
NSString *first;
NSString *second;
first = @"Nicola";
second = [NSString stringWithFormat: @"My name is %@", first];
char *result;
NSString *string;
string = @"Hello";
result = [string UTF8String];
string = [NSString stringWithUTF8String: result];
NSMutableString *str;
str = [NSMutableString stringWithFormat: @"Hello, %@", name];
NSString *greeting = @"Hello";
NSMutableString *s;
s = AUTORELEASE ([NSMutableString new]);
[s appendString: greeting];
[s appendString: @", "];
[s appendString: name];
/*
NSString *name = @"This string was created by GNUstep";
if ([name writeToFile: @"/home/nico/testing" atomically: YES])
{
NSLog (@"Success");
}
else
{
NSLog (@"Failure");
}
*/
/*
NSString *string;
NSString *filename = @"/home/nico/test";
string = [NSString stringWithContentsOfFile: filename];
if (string == nil)
{
NSLog (@"Problem reading file %@", filename);
// <missing code: do something to manage the error...>
// <exit perhaps ?>
}
*/
#endif
#if FALSE //TRUE
NSArray *names;
names = [NSArray arrayWithObjects: @"Nicola", @"Margherita",
@"Luciano", @"Silvia", nil];
/*
NSArray *objects;
NSButton *buttonOne;
NSButton *buttonTwo;
NSTextField *textField;
buttonOne = AUTORELEASE ([NSButton new]);
buttonTwo = AUTORELEASE ([NSButton new]);
textField = AUTORELEASE ([NSTextField new]);
objects = [NSArray arrayWithObjects: buttonOne, buttonTwo,
textField, nil];
*/
NSArray *numbers;
//NSString *string;
numbers = [NSArray arrayWithObjects: @"One", @"Two", @"Three",
nil];
string = [numbers objectAtIndex: 2]; // @"Three"
NSArray *array;
array = [NSArray arrayWithObjects: @"Hi", @"Hello",
AUTORELEASE ([NSLock new]),
nil];
NSLog (@"Array: %@", array);
//NSArray *array;
array = [NSArray arrayWithObjects: @"Nicola", @"Margherita",
@"Luciano", @"Silvia", nil];
if ([array containsObject: @"Nicola"]) // YES
{
// Do something
}
//NSArray *array;
int i, j;
array = [NSArray arrayWithObjects: @"Nicola", @"Margherita",
@"Luciano", @"Silvia", nil];
i = [array indexOfObject: @"Margherita"]; // 1
j = [array indexOfObject: @"Luca"]; // NSNotFound
#endif
#if FALSE //TRUE
NSMutableArray *array;
array = [NSMutableArray new];
[array addObject: @"Michele"];
[array addObject: @"Nicola"];
[array insertObject: @"Alessia" atIndex: 1];
/* Now the array contains Michele, Alessia, Nicola. */
[array removeObjectAtIndex: 0];
/* Now the array contains Alessia, Nicola. */
[array replaceObjectAtIndex: 1 withObject: @"Nicola"];
NSDictionary *dict;
NSString *path;
dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"/opt/picture.png", @"Luca",
@"/home/nico/birthday.png", @"Birthday Photo",
@"/home/nico/birthday.png", @"Birthday Image",
@"/home/marghe/pic.jpg", @"My Sister", nil];
// Following will set path to /home/nico/birthday.png
path = [dict objectForKey: @"Birthday Image"];
// Following will set path to nil
path = [dict objectForKey: @"My Mother"];
NSString *imageName = @"My Father";
//NSString *path;
path = [dict objectForKey: imageName];
if (path == nil)
{
// This means the dictionary does not contain it
NSLog (@"Don't know the path to the image '%@'", imageName);
}
else
{
// Do something with path
}
#endif
#if TRUE //FALSE
NSMutableDictionary *dict;
dict = [NSMutableDictionary new];
AUTORELEASE (dict);
[dict setObject: @"/opt/picture.png"
forKey: @"Luca"];
[dict setObject: @"/home/nico/birthday.png"
forKey: @"Birthday Photo"];
[dict setObject: @"/home/nico/birthday.png"
forKey: @"Birthday Image"];
[dict setObject: @"/home/marghe/pic.jpg"
forKey: @"My Sister"];
[dict removeObjectforKey: @"Luca"];
//NSMutableDictionary *dict;
NSDictionary *dict2;
dict = [NSMutableDictionary new];
AUTORELEASE (dict);
dict2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"Nicola", @"Name",
@"Pero", @"Surname",
@"n.pero@mi.flashnet.it", @"Email", nil];
[dict setObject: dict2 forKey: @"Nicola"];
dict2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"Ettore", @"Name",
@"Perazzoli", @"Surname",
@"ettore@helixcode.com", @"Email", nil];
[dict setObject: dict2 forKey: @"Ettore"];
dict2 = [NSDictionary dictionaryWithObjectsAndKeys:
@"Richard", @"Name",
@"Frith-Macdonald", @"Surname",
@"richard@brainstorm.co.uk", @"Email", nil];
[dict setObject: dict2 forKey: @"Richard"];
if ([dict writeToFile: @"/home/nico/testing" atomically: YES])
{
NSLog (@"Success");
}
else
{
NSLog (@"Failure");
}
//NSDictionary *dict;
//NSDictionary *dict2;
NSString *email;
dict = [NSDictionary dictionaryWithContentsOfFile:
@"/home/nico/testing"];
dict2 = [dict objectForKey: @"Ettore"];
email = [dict2 objectForKey: @"Email"];
NSLog (@"Ettore's Email is: %@", email);
#endif
[pool drain];
return 0;
}
参考:http://www.gnustep.it/nicola/Tutorials/BasicClasses/index.html