IOS学习笔记十九NSArray和NSMutableArray

简介: IOS学习笔记十九NSArray和NSMutableArray

1、NSArray

NSArray不可变集合,不能添加新元素和删除已有元素和替换元素

2、demo

Dog.h

#import <Foundation/Foundation.h>
#ifndef Dog_h
#define Dog_h
@interface Dog : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) int age;
-(id)initWithName:(NSString *)name age:(int)age;
-(void)say:(NSString *)content;
@end
#endif /* Dog_h */

Dog.m

main.m

int main(int argc, char * argv[]) {
    @autoreleasepool {
        NSArray *array = [NSArray arrayWithObjects:@"chenyu", @"hello", @"word", @"god", nil];
        NSLog(@"first data id %@", [array objectAtIndex:0]);
        NSLog(@"first data id %@", [array objectAtIndex:1]);
        NSLog(@"first data id %@", [array lastObject]);
        NSLog(@"@hello is %ld", [array indexOfObject:@"hello"]);
        array = [array arrayByAddingObject:@"chenzixuan"];
        for (int i = 0; i < array.count; ++i)
        {
            NSLog(@"%@", [array objectAtIndex:i]);
        }
        NSArray *arr = [NSArray arrayWithObjects:[[Dog alloc] initWithName:@"chen" age:1], [[Dog alloc] initWithName:@"chenyu" age:1], [[Dog alloc] initWithName:@"chengongyu" age:1], nil];
        Dog *d = [[Dog alloc] initWithName:@"chenyu" age:1];
        NSInteger pos = [arr indexOfObject:d];
        NSLog(@"index is %ld", pos);
        [arr makeObjectsPerformSelector:@selector(say:) withObject:@"拜拜"];
        NSString *str = @"hello";
        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            NSLog(@"正在处理第%ld个元素:%@", idx, obj);
        }];
    }
}

3、结果

2018-07-15 21:17:44.447732+0800 cyTest[31047:9530812] first data id chenyu
2018-07-15 21:17:44.449642+0800 cyTest[31047:9530812] first data id hello
2018-07-15 21:17:44.450020+0800 cyTest[31047:9530812] first data id god
2018-07-15 21:17:44.450943+0800 cyTest[31047:9530812] @hello is 1
2018-07-15 21:17:44.451207+0800 cyTest[31047:9530812] chenyu
2018-07-15 21:17:44.451493+0800 cyTest[31047:9530812] hello
2018-07-15 21:17:44.451739+0800 cyTest[31047:9530812] word
2018-07-15 21:17:44.451986+0800 cyTest[31047:9530812] god
2018-07-15 21:17:44.452233+0800 cyTest[31047:9530812] chenzixuan
2018-07-15 21:17:44.453020+0800 cyTest[31047:9530812] index is 1
2018-07-15 21:17:44.453332+0800 cyTest[31047:9530812] chen say 拜拜
2018-07-15 21:17:44.453581+0800 cyTest[31047:9530812] chenyu say 拜拜
2018-07-15 21:17:44.453803+0800 cyTest[31047:9530812] chengongyu say 拜拜
2018-07-15 21:17:44.454188+0800 cyTest[31047:9530812] 正在处理第0个元素:chenyu
2018-07-15 21:17:44.454456+0800 cyTest[31047:9530812] 正在处理第1个元素:hello
2018-07-15 21:17:44.455253+0800 cyTest[31047:9530812] 正在处理第2个元素:word
2018-07-15 21:17:44.478747+0800 cyTest[31047:9530812] 正在处理第3个元素:god
2018-07-15 21:17:44.478861+0800 cyTest[31047:9530812] 正在处理第4个元素:chenzixuan

4、NSMutableArray

nsMutableArray可变数组,代表是一个集合元素可变的集合

一般有add开头、 remove开头、replace开头、sort开头的方法

5、测试Demo

        NSMutableArray *muArray = [NSMutableArray arrayWithObjects:@"chen", @"yu", @"hello", @"word", nil];
        [muArray addObject:@"123"];
        [muArray removeObject:@"yu"];
        [muArray replaceObjectAtIndex:1 withObject:@"xx"];
        for (id ob in muArray) {
            NSLog(@"ob is %@", ob);
        }

6、结果

2018-07-18 22:02:57.498997+0800 cyTest[31429:12701122] ob is chen
2018-07-18 22:02:57.600036+0800 cyTest[31429:12701122] ob is xx
2018-07-18 22:02:57.600599+0800 cyTest[31429:12701122] ob is word
2018-07-18 22:02:57.600824+0800 cyTest[31429:12701122] ob is 123


相关文章
|
小程序 前端开发 Shell
接入 mPaaS 小程序并实现启动 iOS 版| 学习笔记
快速学习接入 mPaaS 小程序并实现启动 iOS 版。
接入 mPaaS 小程序并实现启动 iOS 版| 学习笔记
|
移动开发 小程序 前端开发
iOS 端自定义开发(二)| 学习笔记
快速学习 iOS 端自定义开发。
iOS 端自定义开发(二)| 学习笔记
|
移动开发 JSON 小程序
iOS 端自定义开发(一)| 学习笔记
快速学习 iOS 端自定义开发。
iOS 端自定义开发(一)| 学习笔记
|
小程序 IDE API
iOS 端预览和调试小程序| 学习笔记
快速学习 iOS 端预览和调试小程序。
iOS 端预览和调试小程序| 学习笔记
|
小程序 Shell 开发工具
接入 mpaas 小程序并实现启动 IOS 版|学习笔记
快速学习接入 mpaas 小程序并实现启动 IOS 版
255 0
接入 mpaas 小程序并实现启动 IOS 版|学习笔记
|
移动开发 JSON 小程序
iOS 端自定义开发(一)|学习笔记
快速学习iOS 端自定义开发(一)
201 0
iOS 端自定义开发(一)|学习笔记
|
小程序 IDE API
IOS 端预览和调试小程序|学习笔记
快速学习 IOS 端预览和调试小程序
178 0
IOS 端预览和调试小程序|学习笔记
|
API 开发工具 iOS开发
iOS 接入指南|学习笔记
快速学习 iOS 接入指南|
246 0
iOS 接入指南|学习笔记
|
测试技术 数据安全/隐私保护 Android开发
提交 iOS 测试任务|学习笔记
快速学习 提交 iOS 测试任务
102 0
提交 iOS 测试任务|学习笔记
|
移动开发 人工智能 小程序
iOS 端自定义开发(二)|学习笔记
快速学习iOS 端自定义开发(二)
226 0

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    23
  • 2
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    21
  • 3
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    141
  • 4
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    223
  • 5
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    87
  • 6
    深入探索iOS开发中的SwiftUI框架
    143
  • 7
    ios样式开关按钮jQuery插件
    58
  • 8
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    74
  • 9
    深入探索iOS与Android操作系统的安全性差异
    102
  • 10
    安卓与iOS开发中的跨平台策略:一次编码,多平台部署
    174