首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从'NSMutableArray‘转换为不相关的类型'[String]’总是失败

从'NSMutableArray'转换为不相关的类型'[String]'总是失败是因为它们是不同的数据类型。'NSMutableArray'是Objective-C中的可变数组类型,而'[String]'是Swift中的不可变数组类型。

在Objective-C中,可以使用以下代码将NSMutableArray转换为NSArray:

代码语言:txt
复制
NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"Hello", @"World", nil];
NSArray *array = [NSArray arrayWithArray:mutableArray];

然而,在Swift中,由于类型安全性的考虑,不允许直接将NSMutableArray转换为[String]。但是,你可以通过以下方式将NSMutableArray转换为[String]:

代码语言:txt
复制
let mutableArray: NSMutableArray = ["Hello", "World"]
let array = mutableArray.compactMap { $0 as? String }

在上述代码中,我们使用了compactMap函数来遍历NSMutableArray中的元素,并将其转换为[String]类型。如果元素无法转换为String类型,则会被过滤掉。

推荐的腾讯云相关产品:无

请注意,以上答案仅针对给定的问题,可能并不涵盖所有相关知识点。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

由Long类型引发的生产事故

今天测试忽然在群里发了一个看似非常简单的线上问题,具体是:在后台通过订单编号(orderId)修改订单信息时,修改不成功 ,修改前后的订单数据完全没有发生变化。第一眼看到这个问题的时候,我心想后台实现逻辑并不就是一个updateById更新订单表的操作(简化了其他业务逻辑)吗?难道订单编号(orderId)在代码里给属性赋值赋错了,心想这么低级的错误“同事”应该不会犯吧,于是我就打开ide先去看了看对应方法的处理逻辑,整体更新操作 属性之间的赋值没有问题,难道又是一个”灵异事件“?说罢 我便想着在测试环境能不能复现一下这个bug,功能上线前功能肯定是测试通过的,于是我在测试环境点啊点,在页面上模拟了几十次更新操作也没有发现问题。

03

iOS - 老生常谈内存管理(三):ARC 面世

ARC全称Automatic Reference Counting,自动引用计数内存管理,是苹果在 iOS 5、OS X Lion 引入的新的内存管理技术。ARC是一种编译器功能,它通过LLVM编译器和Runtime协作来进行自动管理内存。LLVM编译器会在编译时在合适的地方为 OC 对象插入retain、release和autorelease代码来自动管理对象的内存,省去了在MRC手动引用计数下手动插入这些代码的工作,减轻了开发者的工作量,让开发者可以专注于应用程序的代码、对象图以及对象间的关系上。   本文通过讲解MRC到ARC的转变、ARC规则以及使用注意,来帮助大家掌握iOS的内存管理。   下图是苹果官方文档给出的从MRC到ARC的转变。

01
领券