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)

NSObject、NSNumber

轉載于:https://www.cnblogs.com/Free-Thinker/p/11101145.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448593.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

李洋瘋狂C語言之將”you are come from shanghai ”倒置為”shanghai from come are you”,將句子中的單詞位置倒置,而不改變單詞內部結構

題目: 編寫一個C函數,將”you are come from shanghai ”倒置為”shanghai from come are you”,及將句子中的單詞位置倒置,而不改變單詞內部結構 #include <stdio.h> #include <string.h> void change(char *p1, char *p2); //函數聲明 int main() {char str[] …

馬桶怎么清洗才干凈無異味?

方法/步驟 在馬桶水箱中一定要放上潔廁寶&#xff1a; 潔廁寶里面含有多種去除馬桶中雜質以及異味的功能&#xff0c;另外它還帶有香香的味道&#xff0c;我們一按沖馬桶的按鈕&#xff0c;放出來的總是藍色的水&#xff0c;十分的美觀和好看&#xff0c;但是這并不是花瓶般的作…

白話解說:阻塞和非阻塞,同步和異步

阻塞和非阻塞&#xff0c;同步和異步是node.js里經常遇到的詞匯&#xff0c;舉例說明&#xff1a; 我要看足球比賽&#xff0c;但是媽媽叫我燒水&#xff0c;電視機在客廳&#xff0c;燒水要在廚房。家里有2個水壺&#xff0c;一個是普通的水壺&#xff0c;另一個是水開了會叫的…

蘇嵌點滴(一)

來蘇嵌也有12天了&#xff0c;也漸漸開始習慣這樣的生活&#xff0c;每天睜眼到閉眼&#xff0c;全都是代碼。每天都得學習很多新的知識&#xff0c;C語言學到現在也學得差不多了&#xff0c;還有明天一天課。 指針、數組這些C語言中的重點&#xff0c;還是需要一點時間消化的…

Mysql學習總結(8)——MySql基本查詢、連接查詢、子查詢、正則表達查詢講解...

2019獨角獸企業重金招聘Python工程師標準>>> 查詢數據指從數據庫中獲取所需要的數據。查詢數據是數據庫操作中最常用&#xff0c;也是最重要的操作。用戶可以根據自己對數據的需求&#xff0c;使用不同的查詢方式。通過不同的查詢方式&#xff0c;可以獲得不同的數據…

安裝OpenCL和AMD驅動程序

我們將安裝AMD OpenCL軟件開發工具包&#xff08;SDK&#xff09;和AMD驅動程序。 userubuntu:~$ mkdir AMD-APP-SDK-v2.5-lnx64 userubuntu:~$ cd AMD-APP-SDK-v2.5-lnx64/ userubuntu:~$ wgethttp://developer.amd.com/Downloads/AMD-APP-SDK-v2.5-lnx64.tgz userubuntu:~$ t…

Node.js -- Stream 使用小例 ( 流運用 :讀取、寫入、寫出、拷貝)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Stream 是一個抽象接口&#xff0c;Node 中有很多對象實現了這個接口。例如&#xff0c;對http 服務器發起請求的request 對象就是一個 …

李洋瘋狂C語言之有關“you are come from shanghai”逆序(二)

今天將指針和函數全部學完了&#xff0c;之前這題的做法&#xff0c;現在看來有點繁瑣&#xff0c;于是乎做了一些修改&#xff0c;下面是新的代碼 //you are from shanghai逆序#include <stdio.h> #include <string.h> //下面要用到strlenvoid reverse(c…

sync - 清空文件系統緩沖區

總覽 (SYNOPSIS) sync [OPTION] 描述 (DESCRIPTION) 強迫把更改的塊寫入磁盤&#xff0c; 并更新超級塊。 --help顯示幫助然后終止。--version顯示版本信息然后終止。 轉載于:https://www.cnblogs.com/fanweisheng/p/11101219.html

學會用好 Visual Studio Code

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Visual Studio Code是個牛逼的編輯器&#xff0c;啟動非常快&#xff0c;完全可以用來代替其他文本文件編輯工具。又可以用來做開發&…

蘇嵌點滴(二)

今天把指針和函數講完了&#xff0c;這些都還能接受&#xff0c;之后老師和我們講了遞歸&#xff0c;有點難度。 晚上電腦還出了點狀況&#xff0c;一個晚自習全用來重裝系統和學習軟件套裝X_X&#xff0c;調試完已經接近下課&#xff0c;遞歸還沒來得及看。 放學后&#xff…

Maven學習總結(五)——聚合與繼承

2019獨角獸企業重金招聘Python工程師標準>>> Maven學習總結(五)——聚合與繼承 一、聚合 如果我們想一次構建多個項目模塊&#xff0c;那我們就需要對多個項目模塊進行聚合 1.1、聚合配置代碼 1 <modules> 2 <module>模塊一</module> 3 …

19-6/28作業:100以內偶數求和

?作業要求 ?分析思路 在循環里面增加約束&#xff0c;使累加1變成累加2 ?do-while循環代碼 public class GaoSiFor { public static void main(String[] args) { //定義兩個變量 int sum 0; int i 0; //開始循環 do{ //…

Visual Studio Code 常用快捷鍵

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、常用快捷鍵 編輯器與窗口管理 打開一個新窗口&#xff1a; CtrlShiftN 關閉窗口&#xff1a; CtrlShiftW 新建文件 CtrlN 文件之間切…

李洋瘋狂C語言之用遞歸解決李白喝酒問題(附填空題解法)

這是14年藍橋杯的一道填空題 題目&#xff1a;“李白街上走&#xff0c;提壺去買酒&#xff0c;遇店加一倍&#xff0c;見花喝一斗”&#xff0c; 途中&#xff0c;遇見5次店&#xff0c;見了10此花&#xff0c;壺中原有2斗酒&#xff0c;最后剛好喝 完酒&#xff0c;要求最…

coco creator編輯動畫坑之拖圖片

如圖所示&#xff0c;批量選中多張圖片之后&#xff0c;拖到右下角的框中&#xff0c;發現有時候可以有時候不行。這個我覺得是個軟件的bug 后來經過測試發現只有在粉紅色圈的高度才可以正確放入圖片&#xff0c;否則都放不了。轉載于:https://www.cnblogs.com/codeDevotee/p/1…

Spring MVC常用注解說明

2019獨角獸企業重金招聘Python工程師標準>>> 使用Spring MVC的注解及其用法和其它相關知識來實現控制器功能。02 之前在使用Struts2實現MVC的注解時&#xff0c;是借助struts2-convention這個插件&#xff0c;如今我們使用Spring自帶的spring-webmvc組件來實現同…

Ubuntu12.10中安裝ati顯卡驅動amd driver 13.1

1. 先安裝依賴庫 [plain] view plaincopyprint?sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases fakeroot libqtgui4 debhelper debconf libstdc6 dkms libqtgui4 libelfg0 linux-headers-generic 2. 如果是64位系統&#xff0c;需要安裝3…

李洋瘋狂C語言之用遞歸解決李白喝酒問題(二)

之前用遞歸求出了多少種情況&#xff0c;如果要打印出所有的結果&#xff0c;就需要一個數組來存放可能的情況&#xff1a; /****************************************************** 題目&#xff1a;“李白街上走&#xff0c;提壺去買酒&#xff0c;遇店加一倍&#xff0c;…

vue.js 三種方式安裝 ( vue-cli ) 、安裝詳解、創建項目

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Vue.js&#xff08;讀音 /vju?/, 類似于 view&#xff09;是一個構建數據驅動的 web 界面的漸進式框架。Vue.js 的目標是通過盡可能簡單…