[bugfix]copy属性参数将NSMutableArray变为NSArray类型

问题:NSMutableArray 声明为 copy 属性参数后即使接受NSMutableArray变量依然为NSArray变量

测试:

属性申明为:


1

@property (nonatomic, copy) NSMutableArray *data;


1

self.data = [[NSMutableArray alloc] init];

或者接受一个NSMutableArray变量时候


1
2
3
4

      if (![self.data isKindOfClass: [NSMutableArray class]])
        {
            // 依然判断为非NSMutableArray,实际上通过copy后都将转换为NSArray后返回。
        }

可参考如下:
http://stackoverflow.com/questions/14856681/why-does-a-copy-nonatomic-nsmutablearray-property-create-nsarrays

时间: 2024-10-12 12:21:43

[bugfix]copy属性参数将NSMutableArray变为NSArray类型的相关文章

高效的把NSMutableArray变成NSArray

高效的把NSMutableArray变成NSArray 我们在方法内部可能会用NSMutableArray,但是返回的时候希望其他人不去改我们的Array NSMutableArray *array1 = [@[] mutableCopy]; for (int i = 0; i < 10000000; i++) { [array1 addObject:@(i)]; } return array1; 这个时候我们通常的做法是拷贝array1或者是生成一个新的array1 return [array

incompatible pointer types assigning to &#39;nsmutablearray &#39; from &#39;nsarray &#39;

这是因为NSMutableArray和NSArray不是同一个类型造成的. 解决方法 // NSArray --> NSMutableArray NSMutableArray *myMutableArray = [myArray mutableCopy]; // NSMutableArray --> NSArray NSArray *myArray = [myMutableArray copy]; incompatible pointer types assigning to 'nsmutab

delphi 属性 参数 新注释

delphi 属性 参数 新注释,在写代码的时候,可以自动看到属性.参数的的备注说明,太方便了. Tmyclass=class /// <summary> /// 姓名 /// </summary> name:string; /// <summary> /// 性别 /// </summary> sex:string; end; var aclass: Tmyclass; begin aclass.name; aclass.sex; 鼠标放上去的时候提示 写

Spring MVC(十三)--保存并获取属性参数

这里的属性参数主要是指通过request.session.cookie等设置的属性,有时候我们需要将一些请求的参数保存到HTTP的request或者session对象中去,在控制器中也会进行设置和获取操作,spring mvc使用注解的方式支持这些场景,主要的注解有以下几个: @RequestAttribute:获取通过request对象设置的属性值: @SessionAttribte:获取通过session对象设置的属性值: @SessionAttributes:作用在类上,用来将获取的参数设

Java - Java 命令行简介: 选项, 属性, 参数

概述 简单介绍一下 java 命令行相关的参数及属性 1. java 命令行 基本 命令 > java <mainClass> 描述 执行 Java 类 需要准备好编译完成的 mainClass 然后 命令 > java -X<options> -XX<options> -D<properties> <mainClass> [arg0] [arg1]... 怎么感觉, 东西一下多了好多, 有点懵逼了 没事, 慢慢来 这些东西, 大概分

可选参数、命名参数、.NET的特殊类型、特性

1.可选参数和命名参数    1.1可选参数        语法:            [修饰符] 返回类型 方法名(必选参数n,可选参数n)        注意:            1.必选参数可以不存在,也可以有多个:可选参数可以有1个或多个            2.可选参数必须放在必选参数之后            3.可选参数在定义时需要赋初始值            4.可选参数之间也需要使用,进行分隔            5.调用可选参数时,不能跨参数赋值    1.2命名

Spring MVC的各种参数绑定方式(请求参数用基础类型和包装类型的区别)(转)

1.基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" type="text"

JVM实用参数(一)JVM类型以及编译器模式

JVM实用参数(一)JVM类型以及编译器模式 原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types-and-compiler-modes/ 译者:赵峰,iDestiny    校对:郭蕾 现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色.自适应内存管理.垃圾收集.及时编译.动态类加载.锁优化——这里仅仅列举了某些场景下会发生的神奇的事情,但他们几乎不会直接与普

maven各个属性参数详解

<project xmlns="http://maven.apache.org/POM/4.0.0 " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!--父项目的坐标.