zoukankan      html  css  js  c++  java
  • iOS 实例类的变量 赋值失败

    多次遇到类似问题目前只找到原因,在此记录。找到解决方案时,再补充添加。

    问题描述:

    声明类A,类B,主类M.

    在类A中声明一个变量数组testArray;

    @property (nonatomic, strong) NSArray *testArray;

    在主类M中实例化类A,并添加视图;

    A *a = [ [A alloc] initWithFrame:CGRectMake(0,0,20,20)];

    [self addSubView:a];

    在类B中,由A的实例获取变量数组testArray,并对数组赋值;

    A *a = [ [A alloc] init];

    a.testArray = @[@"m",@"n",@"q"];

    结果在A类中调用数组testArray,testArray为空,赋值失败。

    原因:

    数组testArray由类A的不同实例调用,分配的内存不同,所以B类中赋值的数组testArray,和A类中调用的数组testArray不是同一个数组。赋值失败。

    目前的解决思路:

    1、对A类单例化,保证工程共只存在一个A的实例;(若工程中存在多个单例类,是否有弊端?)

    2、声明静态数组testArray;(测试不成功)

  • 相关阅读:
    jps命令
    Collection
    java.lang包中异常
    final关键字
    JVM运行时数据区域
    String详解
    哈希码
    Java虚拟机
    垃圾收集器与内存分配策略
    solr简介
  • 原文地址:https://www.cnblogs.com/songshu-yilia/p/4315017.html
Copyright © 2011-2022 走看看