您好,欢迎访问本站博客!登录后台查看权限
  • 欢迎大神光临
  • 有朋自远方来 不亦悦乎

Objective-C教程之整型和布尔类型

ObjC教程 老刘 2018-08-06 333 次浏览 0个评论

数据类型

了解Objective-C的整数类型和布尔类型。

整数类型

始终记得Objective-C是一门C超语言,C语言的数据类型都可以用,在Objective-C中, 我们依然频繁使用C语言的基础数据类型存储数据,比如char、int、float等等。 Objective-C也添加了NSInteger和NSUInteger用于存储有符号整数和无符号整数,这两个都是 C基础数据类型的typedef,他们的size和编译目标平台相关,而不是固定存储尺寸。

例:NSUInteger应用

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSUInteger a = 1, b = 2;
        NSLog(@"sum=%lu!", a + b);
    }
    return 0;
}

例:NSInteger应用

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSInteger a = 1;
        NSInteger b = 2;
        NSLog(@"sum=%ld", a + b);
    }
    return 0;
}

例:获取NSInteger和NSUInteger的size

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog(@"NSUInteger size=%lu", sizeof(NSUInteger));
        NSLog(@"NSInteger size=%lu", sizeof(NSInteger));
    }
    return 0;
}
/*
程序输出
2018-09-30 12:00:11.197880+0800 数据类型[1263:44819] NSUInteger size=8
2018-09-30 12:00:11.198174+0800 数据类型[1263:44819] NSInteger size=8
*/

因为我编译目标是64位平台,因此得到的size为8字节。

布尔类型

Objective-C条件判断遵守C语言规则,即0为假,非0都为真

在Objective-C中布尔类型为BOOL,其值可以是YES或者NO,YES为true,NO为false。Objective-C并没有 从语言特性上添加布尔类型,是C语言某个基础数据类型的typedef。在其它C语言头文件中可能也会有 布尔类型的定义,但是我们应该习惯使用Objective-C的BOOL类型来表示布尔值。

例:打印yes和no的值

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        BOOL yes = YES;
        BOOL no = NO;
        //  2018-08-08 17:49:21.428 Foundation[4228:111164] YES=1,NO=0
        NSLog(@"YES=%d,NO=%d", yes, no);
    }
    return 0;
}

已有 333 位网友参与,快来吐槽:

发表评论