diff options
Diffstat (limited to 'objective-c.html.markdown')
| -rw-r--r-- | objective-c.html.markdown | 58 | 
1 files changed, 49 insertions, 9 deletions
| diff --git a/objective-c.html.markdown b/objective-c.html.markdown index 1cfe8ed6..0131a34c 100644 --- a/objective-c.html.markdown +++ b/objective-c.html.markdown @@ -50,53 +50,93 @@ int main (int argc, const char * argv[])      // String      NSString *worldString = @"World"; -    NSLog(@"Hello %@!", worldString); // Print "Hello World!" +    NSLog(@"Hello %@!", worldString); // prints => "Hello World!" +    // The mutable version of NSString is NSMutableString that allows to edit  +    // individual characters or append strings together.  +    NSMutableString *mutableString = [NSMutableString stringWithString:@"Hello"]; +    [mutableString appendString:@" World!"]; +    NSLog(@"%@", mutableString); // prints => "Hello World!"      // Character literals      NSNumber *theLetterZNumber = @'Z'; -    char theLetterZ            = [theLetterZNumber charValue]; +    char theLetterZ            = [theLetterZNumber charValue]; // or 'Z'      NSLog(@"%c", theLetterZ);      // Integral literals      NSNumber *fortyTwoNumber = @42; -    int fortyTwo             = [fortyTwoNumber intValue]; +    int fortyTwo             = [fortyTwoNumber intValue]; // or 42      NSLog(@"%i", fortyTwo);      NSNumber *fortyTwoUnsignedNumber = @42U; -    unsigned int fortyTwoUnsigned    = [fortyTwoUnsignedNumber unsignedIntValue]; +    unsigned int fortyTwoUnsigned    = [fortyTwoUnsignedNumber unsignedIntValue]; // or 42      NSLog(@"%u", fortyTwoUnsigned);      NSNumber *fortyTwoShortNumber = [NSNumber numberWithShort:42]; -    short fortyTwoShort           = [fortyTwoShortNumber shortValue]; +    short fortyTwoShort           = [fortyTwoShortNumber shortValue]; // or 42      NSLog(@"%hi", fortyTwoShort); + +    NSNumber *fortyTwoShortNumber = [NSNumber numberWithShort:41]; +    unsigned short fortyTwoUnsigned = [fortyTwoShortNumber unsignedShortValue]; // or 41 +    NSLog(@"%hu", fortyTwoUnsigned);      NSNumber *fortyTwoLongNumber = @42L; -    long fortyTwoLong            = [fortyTwoLongNumber longValue]; +    long fortyTwoLong            = [fortyTwoLongNumber longValue]; // or 42      NSLog(@"%li", fortyTwoLong); +    NSNumber *fortyTwoLongNumber = @53L; +    unsigned long fiftyThreeUnsigned = [fortyTwoLongNumber unsignedLongValue]; // or 53 +    NSLog(@"%lu", fiftyThreeUnsigned); +      // Floating point literals      NSNumber *piFloatNumber = @3.141592654F; -    float piFloat           = [piFloatNumber floatValue]; -    NSLog(@"%f", piFloat); +    float piFloat           = [piFloatNumber floatValue]; // or 3.141592654f +    NSLog(@"%f", piFloat); // prints => 3.141592654 +    NSLog(@"%5.2f", piFloat); // prints => " 3.14"      NSNumber *piDoubleNumber = @3.1415926535; -    double piDouble                 = [piDoubleNumber doubleValue]; +    double piDouble                 = [piDoubleNumber doubleValue]; // or 3.1415926535      NSLog(@"%f", piDouble); +    NSLog(@"%4.2f", piDouble); // prints => "3.14" + +    // NSDecimalNumber is Objective-C's fixed-point class more precise then float or double +    NSDecimalNumber *oneDecNum = [NSDecimalNumber decimalNumberWithString:@"10.99"]; +    NSDecimalNumber *twoDecNum = [NSDecimalNumber decimalNumberWithString:@"5.002"]; +    // NSDecimal isn't able to use standard +, -, *, / operators. NSDecimalNumber has its own: +    [oneDecNum decimalNumberByAdding:twoDecNum]; // add +    [oneDecNum decimalNumberBySubtracting:twoDecNum]; +    [oneDecNum decimalNumberByMultiplyingBy:twoDecNum]; +    [oneDecNum decimalNumberByDividingBy:twoDecNum]; +    NSLog(@"%@", oneDecNum); // prints => 10.99 as NSDecimalNumber is immutable.       // BOOL literals      NSNumber *yesNumber = @YES;      NSNumber *noNumber  = @NO; +    // or +    BOOL yesBool = YES; +    BOOL noBool = NO; +    NSLog(@"%i", yesBool); // prints => 1      // Array object      NSArray *anArray      = @[@1, @2, @3, @4];      NSNumber *thirdNumber = anArray[2];      NSLog(@"Third number = %@", thirdNumber); // Print "Third number = 3" +    // NSMutableArray is mutable version of NSArray allowing to change items in array +    // and extend or shrink array object. Convenient, but not as efficient as NSArray. +    NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:2]; +    [mutableArray addObject:@"Hello"]; +    [mutableArray addObject:@"World"]; +    [mutableArray removeObjectAtIndex:0]; +    NSLog(@"%@", [mutableArray objectAtIndex:0]); // prints => "World"      // Dictionary object      NSDictionary *aDictionary = @{ @"key1" : @"value1", @"key2" : @"value2" };      NSObject *valueObject     = aDictionary[@"A Key"];      NSLog(@"Object = %@", valueObject); // Print "Object = (null)" +    // Set object +    NSSet *set = [NSSet setWithObjects:@"Hello", @"Hello", @"World", nil]; +    NSLog(@"%@", set); // prints => {(Hello, World)} +      ///////////////////////////////////////      // Operators      /////////////////////////////////////// | 
