1. 程式人生 > >15、OC 包裝類(NSNumber、NSValue)

15、OC 包裝類(NSNumber、NSValue)

#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //使用類方法建立
        NSNumber* pai = [NSNumber numberWithDouble:3.1415];
        NSLog(@"%@",pai);
       
        //NSNumber是一個類簇,使用同一個類名,建立不同物件
        NSNumber *intNumber = [[NSNumber alloc]initWithInt:10];
        NSNumber *floatNumber = [[NSNumber alloc]initWithFloat:3.14f];
        NSNumber *doubleNumber = [[NSNumber alloc]initWithDouble:10];
        NSNumber *charNumber = [[NSNumber alloc]initWithChar:'A'];
       
        //比較大小
        BOOL ret = [intNumber isEqualToNumber:doubleNumber];
        NSLog(@"%d",ret);
       
        if([intNumber compare:floatNumber]==NSOrderedAscending){
            NSLog(@"<");
        }else if([intNumber compare:floatNumber]==NSOrderedSame){
            NSLog(@"=");
        }else if([intNumber compare:floatNumber]==NSOrderedDescending){
            NSLog(@">");
        }
       
        //還原基本資料型別資料
        NSLog(@"%d",[intNumber intValue]);
        NSLog(@"%f",[floatNumber floatValue]);
        NSLog(@"%f",[doubleNumber doubleValue]);
        NSLog(@"%c",[charNumber charValue]);
       
        //OC允許自動裝箱機制,但是自動裝箱不支援ARC,所以在開啟ARC時會報錯
        //NSNumber* i1 = 10;
    }
    return 0;
}