@
for å lage NSString
NSNumber
, NSArray
og NSDictionary
@12 /* [NSNumber numberWithInt:12] */
@'Z' /* [NSNumber numberWithChar:'Z'] */
@YES /* [NSNumber numberWithBool:YES] */
@(M_PI/16) /* [NSNumber numberWithDouble:(M_PI / 16)] */
NSArray *array = @[ @"Hello", @"Wellow", @"Cool" ];
/*
NSArray arrayWithObjects:@"Hello", @"Wellow", @"Cool", nil];
*/
NSLog(@"Første element: %@", array[0]);
NSDictionary *dictionary = @{
@"firstname" : @"Foo",
@"lastname" : @"Bar",
};
/*
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1", @"key1", @"value2", @"key2", nil];
*/
NSLog(@"Første element: %@", dictionary["firstname"]);
NSArray songs = [@"Hello", @"Someday", @"Help"];
for (NSUInteger index = 0; index < songs.count; index++)
{
loop-body
}
NSArray songs = [@"Hello", @"Someday", @"Help"];
for (NSString *string in songs)
{
// do stuff...
}
Først og fremst, hva er disse * overalt?
Det er hvordan man definerer en peker til minnet
Ved bruk av `id` bruker man ikke * da den har en peker automatisk
Det betyr at: Statisk typing er kun til for å gi deg typesikkerhet ved kompilering; alle spor forsvinner etter kompilering, foruten primitiver som ikke er pekere og derfor statiske
id track = [[SpotifyTrack alloc] init]; /* dynamisk typet */
SpotifyTrack *track = [[SpotifyTrack alloc] init]; /* statisk typet */
int songCount = 3; /* primitiv */
id
er definert som en pointer til hva som helstid
.nil
, i stedet for null
som i mange andre språkNSString *string = nil;
NSString *low = [string lowercaseString];
NSLog(@"%@", low); // => null
NULL
og nil
kompileres begge til tallet 0
, så dette er også lov:NSString *string = 0;
NSString *low = [string lowercaseString];
NSLog(@"%@", low); // => null