OC數組的簡單使用、NSArray

来源:https://www.cnblogs.com/laorenyuhail/archive/2018/09/04/9583570.html
-Advertisement-
Play Games

和上一篇文章一樣,數組的重要性不言而喻,在OC編程的過程中我們會不斷的使用到NSArray,和C語言不同的是,我們這裡的數組只能存OC對象類型,不能存C語言基本數據類型,也不能存NSNull類型,但是我們這裡的數組可以存多種對象類型,比如,在同一個數組裡面,既可以存字元串類型,又可以存對象化了以後的 ...


  和上一篇文章一樣,數組的重要性不言而喻,在OC編程的過程中我們會不斷的使用到NSArray,和C語言不同的是,我們這裡的數組只能存OC對象類型,不能存C語言基本數據類型,也不能存NSNull類型,但是我們這裡的數組可以存多種對象類型,比如,在同一個數組裡面,既可以存字元串類型,又可以存對象化了以後的整數類型,甚至是另外一個數組,也可以存其他的對象類型(將C語言的數據類型轉換成OC的對象類型下麵會講到),不過在同一個數組裡面儘量存同一種數據類型,這是為了方便使用。在OC數組裡面以nil表示結尾,如果你在數組的中間存了一個nil的數據,那麼在nil後面的數據是讀取不到的。

  和NSString一樣,數組可以分為可變數組(NSMutableArray)和不可變數組(NSArray),首先,我們還是從不可變數組說起,因為可變數組只是在不可變數組上加上了一些新的方法。

一、不可變數組

1.不可變數組的創建

2.訪問數組的對象個數可以使用count屬性,回憶一下,在字元串中訪問字元串的長度我們使用的是length屬性。

3.獲取某個對象的索引值使用方法:indexOfObject

4.獲取某個索引值對應的對象使用方法:objectAtIndex

5.判斷數組是否包含某個對象使用方法:containsObject

6.獲取數組第一個元素:arr[0]

           [arr objectAtIndex:0]

           [arr firstObject]

7.獲取數組最後一個元素:[arr lastObject]

二、可變數組

  可變數組相對於不可變數組和可變字元串相對於不可變字元串類似,都增加了一些方法和屬性,最主要的就是增、刪、改、插入。

1.創建可變數組

2.向可變數組裡面增加一個對象使用方法:addObject

3.在可變數組裡面刪除對象:

  [removeObject:@"xianggang"];

        [ar removeObject:@"bj"];

        [ar removeObjectAtIndex:1];

        [ar removeAllObjects];

4.更換數組裡面的一個對象

  [ar exchangeObjectAtIndex:0 withObjectAtIndex:1];

5.插入一個對象

  [ar insertObject:@"bj" atIndex:1];

三、封裝(即類型轉換)

1.將C語言基本數據類型封裝為OC對象類型我們使用的是NSNumber;如:

NSNumber *number = [NSNumber numberWithInt:20];

NSNumber *number1 = [NSNumber numberWithFloat:20.0];

2.將C語言的結構體和枚舉封裝了OC對象類型需要使用NSValue;如:

struct CGRect{

          CGPoint point;

          CGSize size;

        };

 

 struct CGPoint {

 

         CGFloat x;

 

         CGFloat y;

 

         };

 

         

 

        struct CGSize {

 

            CGFloat width;

 

            CGFloat height;

 

        };

 

         */

 

        CGRect rect = CGRectMake(100, 100, 200, 150);

 

        NSValue *rectValue = [NSValue valueWithRect:rect];

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Druid.io(以下簡稱Druid)是2013年底開源出來的, 主要解決的是對實時數據以及較近時間的歷史數據的多維查詢提供高併發(多用戶),低延時,高可靠性的問題。 Druid簡介: Druid是一個為在大數據集之上做實時統計分析而設計的開源數據存儲。這個系統集合了一個面向列存儲的層,一個分散式、 ...
  • Herrt灬凌夜 https://www.cnblogs.com/wuyx/archive/2018/03.html ...
  • CodePush熱更新組件詳細接入教程 什麼是CodePush CodePush是一個微軟開發的雲伺服器。通過它,開發者可以直接在用戶的設備上部署手機應用更新。CodePush相當於一個中心倉庫,開發者可以推送當前的更新(包括JS/HTML/CSS/IMAGE等)到CoduPush,然後應用將會查詢 ...
  • 基於Html5 Plus + Vue + Mui 移動App 開發(二) 界面效果: 本頁面採用Html5 Plus + Vue + Mui 開發移動界面,本頁面實現: 1、下拉刷新、上拉獲取更多功能; 2、使用Vue 進行數據綁定; 3、使用WebView 創建打開新的界面; 源碼如下: App下 ...
  • ideviceinstaller -i .ipa包所在的路徑 環境搭建:Mac上安裝brew(brew裡面有很多命令,可以安裝自己想用的命令) 安裝命令如下:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xv ...
  • 使用Html5 plus + Mui 進行移動App開發,有一段時間了,這幾日得空,做個資訊App分享給大家。 今天主要分享主頁實現,首先看下效果: 此界面主要分為:標題、內容分類列表、搜索及設置按鈕。 標題 內容分類列表 搜索框 設置按鈕 界面定義完後,接下來進行事件定義,實現交互效果: 完整代碼 ...
  • 前言 說起內購,其實挺令開發者厭煩的,原因呢,先不說漏單的問題,首先蘋果要扣除30%的銷售額哦,可恨不?(我覺得可恨),有些想辦法先隱藏掉第三方支付(支付寶、微信等),等項目上線了,再跳過內購使用第三方支付,emmmm.......這個方法確實不錯,但是如果被蘋果發現了,APP內虛擬產品調用第三方支 ...
  • 概述 OKhttp是一個網路請求開源項目,Android網路請求輕量級框架,支持文件上傳與下載,支持https,由移動支付Square公司貢獻。 依賴 Get請求 Get方式發送同步請求 Get方式發送非同步請求 Post請求 FormBody傳遞鍵值對參數 RequestBody傳遞Json或Fil ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...