首页
学习
活动
专区
工具
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类型,则会被过滤掉。

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

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

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

相关·内容

java把stringint类型_java把String类型换为int类型方法

java把String类型换为int类型方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型换为int...在java中,实现String类型换为int类型方法有:Integer.parseInt(String)方法、Integer.valueOf(String)方法。...本篇文章就给大家介绍java把String类型换为int类型两种方法,让大家了解String类型如何可以转换为int类型,希望对你们有所帮助。...你会看到像这样编译错误: 2、Integer.valueOf(String)方法 valueOf()同样是Integer包装类一个方法,可以将String类型值转换为int类型值。...关于java把String类型换为int类型方法就分享到这里了,希望以上内容可以对大家有一定帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

4.1K10

Swift3.0 - 数据类型

// 字符数组字符串 let catString = String(catCharacters) // Unicode编码 let precomposed: Character = "\u{D55C}...{ func description()-> String{ return "我是一个Double类型数字\(self)" } } // 定义一个协议类型 var a:NumberProtocol...= Double(name) 4.数字之间转换结果为非可选值,数字字符串也是非可选值,但是字符串转数字就是可选值(因为它有可能转换失败) let str = "\(num1)" let str1...Optional(30.0) 注意: 字符串33.0 Int 类型只会是nil 不会是33 因为字符串33.0 不是Int类型转换失败,但是浮点数33.0 可以转换为33 5.不能推断出下面的类型...Array 和NSArray,NSMutableArray区别 1.测试类型 var list1:Array = ["你好","2","3","4"] let list2 = list1 list1

62210

将判断 NSArray 数组是否包含指定元素时间复杂度 O(n) 降为 O(1)

当我们需要频繁进行该操作时,可能会存在较大性能问题。 该问题背后原因很简单。官方文档明确指出 NSArray 第 0 位开始依次判断是否相等,所以判断次数是 n (n 等于数组长度) ?...Peter" => "35", "Ben" => "37", "Joe" => "43"); var_dump($age); 通过 var_dump,我们可以发现:普通数组会自动分配 ID 键(ID 键总是...image 通过类似的思想,我们同样可以 将普通 NSArray 转换为 NSDictionary 将普通 NSArray 转换为 NSDictionary 下面,我们按照以下规则设计两个转换方法...+ (NSDictionary *)arr2Dic:(NSArray *)arr { // 注意,如果数组可能存在相同元素,请将 `NSValue` 切换到自定义类型...containsObject: 和字典 objectForKey: 进行性能测试: + (void)load { NSMutableArray *arr = [NSMutableArray array

1.7K20

【c++】类型转换

隐式类型转化:编译器在编译阶段自动进行,能,不能就编译失败 \2....显式类型转化:需要用户自己处理 类型相近才能发生隐式类型转换,如int和double,如果不相关,而对于指针和整型,指针是地址,整型和指针类型之间不会进行隐式类型转换,只能显式强制类型转换: int...用于相近类型之间转换,(这些类型表示意义差不多)编译器隐式执行任何类型转换都可以使用static_cast,对于两个不相关类型之间转换,不能使用static_cast: int main() {...如果父类指针(或引用)指向是一个子类对象,那么将其转换为子类指针(或引用)则是安全,没有问题 使用C强制类型转换向下转型是不安全,因为此时无论父类指针(或引用)指向是父类对象还是子类对象都会进行转换...:用于相近类型类型之间进行转化,如int与double,编译器隐式执行任何类型都可用static_cast reinterpret_cast:用于两个不相关类型之间转换 const_cast:

19720

iOS 进阶之深拷贝和浅拷贝

3. copy 和 mutablecopy copy:copy拷贝出来对象类型总是不可变类型(例如, NSString, NSDictionary, NSArray等等) mutableCopy拷贝出来对象类型总是可变类型...下面先看个非集合类immutable对象拷贝例子 NSString *string = @"origin"; NSString *stringCopy = [string copy]; NSMutableString...*stringMCopy = [string mutableCopy]; 通过查看内存,可以看到 stringCopy 和 string 地址是一样,进行了指针拷贝;而 stringMCopy 地址和...下面先看集合类immutable对象使用copy和mutableCopy一个例子 NSMutableArray *array = [NSMutableArray arrayWithObjects:[NSMutableString...当属性类型为 NSString 时,经常用此特质来保护其封装性,因为传递给设置方法新值有可能指向一个 NSMutableString 类实例。

1.4K20

利用Runtime实现简单字典模型

好了,废话不多说,直接上代码,let's go 简单字典模型 首先,最简单字典开始,例如我们需要将如下字典转化成自定义模型。...我们可以通过写一个框架自动帮我们实现字典模型,大致思路就是: 遍历模型中属性,然后拿到属性名作为键值去字典中寻找值; 找到值后,根据模型属性类型将值转化成正确类型; 给属性名赋值。...苹果官方文档(Objective-C Runtime Programming Guide)可以得知,attributes是一个类型编码字符串,这个字符串以T作为开始,接上@encode类型编码和一个逗号...图中可以看出,属于基本类型属性打印出来类型是null,其他都能正确打印出对应类型。...接下来,我们拿到值后将值类型换为属性对应数据类型

1.8K60

利用Runtime实现简单字典模型

好了,废话不多说,直接上代码,let's go 简单字典模型 首先,最简单字典开始,例如我们需要将如下字典转化成自定义模型。...我们可以通过写一个框架自动帮我们实现字典模型,大致思路就是: 遍历模型中属性,然后拿到属性名作为键值去字典中寻找值; 找到值后,根据模型属性类型将值转化成正确类型; 给属性名赋值。...苹果官方文档(Objective-C Runtime Programming Guide)可以得知,attributes是一个类型编码字符串,这个字符串以T作为开始,接上@encode类型编码和一个逗号...图中可以看出,属于基本类型属性打印出来类型是null,其他都能正确打印出对应类型。...接下来,我们拿到值后将值类型换为属性对应数据类型

1.2K30

菜鸟进化史之RunTime实战字典模型

字典模型在我还是菜鸟时候,说实话,老老实实在模型里面写的如下代码 1.手动解析 //手动解析 - (instancetype)initWithDic { self = [super init...我想每个人开始接触iOS开发到现在都会有一个进化过程。就这样写了很久直到我走出那家公司,去其他公司面试,被虐体无完肤。各种炫酷装逼底层层出不穷,面试是一种成长机会,我是这么认为。...1.首先创建一个继承NSObject分类,名字叫DicToModel 2.增加一个方法用于字典模型,方法名如下: + (instancetype)createModelWithDict:(NSDictionary...// 成员属性类型 NSString *propertyType = [NSString stringWithUTF8String:ivar_getTypeEncoding...(ivar)]; // 二级转换 // 值是字典,成员属性类型不是字典,才需要转换成模型 if ([value isKindOfClass:[NSDictionary

49740

iOS运行时应用:动态添加方法、属性关联

1.1 获取类名 1.2 获取成员变量 1.3 获取成员属性 1.4 获取类实例方法 1.5 获取协议列表 1.6 动态添加方法 1.7 方法实现交换 2.1 字典模型KVC实现 2.2 路由实现...()函数返回是一个char类型指针,也就是C语言字符串类型,所以我们要将其转换成NSString类型,然后再返回出去。...:className]; } 1.2 获取成员变量 用ivar_getTypeEncoding()来获取相应成员变量类型。...使用ivar_getName()来获取相应成员变量名称。下方就是对获取成员变量功能封装。返回是一个数组,数组元素是一个字典,而字典中存储就是相应成员变量名称和类型。...*mutableList = [NSMutableArray arrayWithCapacity:count]; for (unsigned int i = 0; i < count; i++

98620

ClangFormat语法1.0

AccessModifierOffset(Int类型) 访问修饰符偏移量 AccessModifierOffset: 0 @public NSMutableArray *_cellHeightArray...可能值: `BS_Attach` (在配置: 附加) 总是将大括号附加到上下文。 `BS_Linux` (在配置: Linux) 像附加,但是休息前大括号对功能、 命名空间和类定义。...`BS_GNU` (在配置: GNU) 总是打破前大括号和对大括号内控制语句,而不是那些类、 函数或其他定义中添加额外缩进级别。...#BreakConstructorInitializersBeforeComma (bool) >总是打破在逗号之前构造函数初始值设定项和对齐以冒号逗号。...#ColumnLimit (unsigned) >每一行限制字符长度 #CommentPragmas (std::string) >描述具有特殊意义,不应分成行或以其他方式改变了评论正则表达式

1.1K30

Hutool工具类库之类型转换工具类

一、简介 痛点    在Java开发中我们要面对各种各样类型转换问题,尤其是从命令行获取用户参数、HttpRequest获取Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?...常用办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败风险,不得不加一层try catch,这个小小过程混迹在业务代码中会显得非常难看和臃肿。...Convert类中大部分方法为toXXX,参数为Object,可以实现将任意可能类型换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值。...二、Java常见类型转换 1、转换为字符串 int a = 1; // aStr为"1" String aStr = Convert.toStr(a); long[] b = {1,2,3,4,5};...// bStr为:"[1, 2, 3, 4, 5]" String bStr = Convert.toStr(b); 2、转换为指定类型数组 String[] b = { "1", "2", "3",

59530
领券