zoukankan      html  css  js  c++  java
  • iOS有哪些数据类型/基本数据类型?

    简述

    本文主要探究使用OC作为iOS开发语言时,我们能使用哪些数据类型。


    一切类型始于C。

    C语言的类型

    基本数据类型:

    基本数据类型(fundamental data types)也叫原始数据类型(primitive data types)

    整型、字符型、浮点型、枚举型

    C数据类型及内存占用

    枚举型在计算机内部以 int 类型存储

    除了基本数据类型,C还有

    构造类型:

    数组类型, 结构体类型(struct), 共用/联合体类型(union)

    union一般在对单片机等内存比较小的设备进行编程时才使用。

    指针类型:

    data_type *pointer_name

    由于指针在实质上是一个内存地址,内存地址的长度跟CPU的寻址有关(与data_type无关)

    所以在32位系统上, 指针占据4个字节;在64位系统上,指针占据8个字节

    空类型(void):

    空类型一般用于函数的返回值,表示不需要返回任何类型。

    由于void类型只是一个抽象概念,并不会存在于内存中,自然就没有字节占用。


    有了类,世间万物皆可定义。

    OC语言类型

    由于Objective-C是C语言的严格超集,因此以上的数据类型也是OC数据类型。

    相比于C

    OC是一门面向对象语言,如同C++一样支持用户定义类型(class)

    用户定义类型为Cocoa框架的诞生提供了可能。


    类型越来越复杂,代码越来越简洁。

    iOS数据类型

    一般而言,我们所说的数据类型/基本数据类型都是指一门语言的。

    iOS数据类型 = C数据类型 + Cocoa类

    iOS数据类型不是一种严谨的叫法,实际上指的是C数据类型加上Cocoa框架集合(Foundation、UIKit等)中定义的的数据类型,也即Cocoa类(泛指所有基于Objective-C运行时且派生自根类NSObject的类)。

    Foundation框架中定义的NSObject类是iOS中最重要的数据类型,用户定义的类都需要继承自它从而获得调用iOS系统资源的能力。Foundation中还有一个重要的集合Collection)概念,其包含了NSArray、NSSet、NSDictionarry以及各自的可变类型;此外,还有NSString、NSMutabString、NSNumber等重要的类型。以上提及的类型均继承自NSObject,是用户定义类型(class)而并非构造类型(struct),它们在被赋值或者被传入函数或者方法时,不会发生值拷贝,而是传递现有实例的引用。

    总结

    iOS数据类型

    注:由于在iOS中BOOL实际上是signed char类型的重命名,NSInteger等也大同小异,因而并没有将它们归为新的类型。

    参考

    C/基本数据类型

    C 语言中不同类型指针的大小是否完全相同,为什么?

    iOS布尔类型

    内存:栈和堆(C / Swift)

    NSObjectNSNumber

  • 相关阅读:
    iphone精简教程
    自己搭建云盘 – 简单的PHP网盘程序
    内存泄漏(I)
    App 基本图片配置(I)
    Git 工作环境配置
    MVC(I)
    ReactNative APP基本框架搭建 基于 React Navigation
    UI绘制原理及卡顿 掉帧原因
    ES6中Json、String、Map、Object之间的转换
    Invariant Violation: requireNativeComponent: "RNCWKWebView" was not found in the UIManager.
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/11101145.html
Copyright © 2011-2022 走看看