1.最近一直在忙着做项目,今天就来总结最近这段时间遇到的一些比较麻烦的问题。有时候也是颇感无奈。

有句话说的好。人不要总在一棵树上吊死。去旁边那棵树上也可以试试。好了不扯了。直接进入正题吧!

先来阐述一下我遇到的问题。由于项目的功能需求需要从上一个界面传递2个数组过去,然后在下个界面进行一系列的操作,点击保存的时候要将这2个数组返回给上个界面,点击取消则不做数组传递。现在的问题是在第二层的界面做数组操作的时候,第一个界面的数组会出现自己改变的情况(前提是我在界面返回的时候并没有对此界面做数组做操作),这个问题困扰了我很多天,因为在遇到这个问题的时候第一反应是在某个地方对此数组做了改变。所以在数据改变的地方都打上了断点,但是测试的结果是并没有做任何一个断点,也就是说界面返回的时候并没有做任何数组处理的地方

上代码

  EditGoodsDetailVC * vc = [[EditGoodsDetailVC alloc]init];
vc.delegate =self; vc.NewdataArr = self.OrignArr;
vc.PostStr = self.PostStr;
vc.imageIdArr =self.NewPostidArr;
[self.navigationController pushViewController:vc animated:YES];

这里这个newdataArr 就是在返回的时候会自己随着origArr做改变而改变,之后做了很多的操作了排查,一直都无法找到问题。 我的推断是

  vc.NewdataArr = self.OrignArr;
vc.PostStr = self.PostStr;

像这种 =赋值的时候,会把数组的地址也会赋给他,但是这是2个界面的数组,按道理来说。他们2个数组并没有直接的影响,但是实际的情况就是这样,到最后我这个问题搞清楚。总之新版的xcode 更新之后问题还是很多的,最后我给大家说说我的解决办法,不是很好,但是只能是没有办法的办法了

#import <UIKit/UIKit.h>
@protocol EditGoodsDetailVCDelegate <NSObject>
@optional - (void)EditGoodsClick:(NSMutableArray *)IdArr textStr:(NSString *)textStr LocadImage:(NSMutableArray *)LocadImageArr; - (void)leftCickDelegate:(NSMutableArray *)locadImageArr idarr:(NSMutableArray * )IdArr;
@end

在下个界面写个2个代理,1.不管他是保存还是返回都会走代理。2.写了2个数组,把传过来的数组做一个copy

如果是保存的话就把操作过的2个数组返回,如果没做操作就吧copy的2个数组直接进行返回

希望同样遇到这个问题的童鞋,可以给大家提供点帮助。

by: Qzx

关于xcode 9.0数组问题的遇到的坑的更多相关文章

  1. xcode 5.0中,新的开发者证书加载方式

    按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎 ...

  2. xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)

    xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...

  3. Xcode 5.1.1 与 Xcode 6.0.1 共存

    Xcode 5.1.1 (下面简称Xcode5)和Xcode 6.0.1(下面简称Xcode6)都是正式版本号.其应用程序文件名称都是"Xcode".假设通过AppStore升级或 ...

  4. iOS之Xcode 8.0真机调试运行:This ** is running iOS 10.1.1 (14B100), which may not be supported

    2016年10月份 苹果升级了iOS系统为10.1,xcode 8.0 运行会提示: This iPhone 5 (Model A1429) is running iOS 10.1.1 (14B100 ...

  5. Xcode 7.0 官方免费的真机开发

    Xcode 7.0 官方免费的真机开发 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...

  6. Xcode 9.0 新增功能大全

    Xcode是用于为Apple TV,Apple Watch,iPad,iPhone和Mac创建应用程序的完整开发人员工具集.Xcode开发环境采用tvOS SDK,watchOS SDK,iOS SD ...

  7. 第30月第11天 Xcode 9.0中新增的API版本检查@available

    1.Xcode 9.0中新增的API版本检查@available https://www.jianshu.com/p/0a94baa6c3dd https://www.jianshu.com/p/b8 ...

  8. 在 Win 7或8 下使用 VirtualBOX 虚拟机安装 OS X 10.11 El Capitan 及 Xcode 7.0

    注:本文源自于: http://bbs.feng.com/read-htm-tid-9908410.html _____________________________________________ ...

  9. Xcode 8.0 新特性 & Swift 3.0 增加的变动

    从 Xcode 8.0 开始,目前所有的插件都无法工作! NSLog 无法输出 -- 此bug等待正式版本... Xcode 提供了文档注释快捷键option + cmd + / 但是要把系统升级到1 ...

随机推荐

  1. sphinx增量索引使用

    sphinx在使用过程中如果表的数据量很大,新增加的内容在sphinx索引没有重建之前都是搜索不到的. 这时可以通过建立sphinx增量索引,通过定时更新增量索引,合并主索引的方式,来实现伪实时更新. ...

  2. Unbuntu18.04如何备份

    以后可能用的到:https://blog.csdn.net/qq_35523593/article/details/78545530

  3. 【android】6大布局

    线性布局 相对布局 绝对布局 网格布局 表格布局 帧布局

  4. List<Object>删除某一个Object

    1.直接删除: List<LineShop> tlineprices  = new ArrayList<>(); tlineprices.remove(0); 2.使用遍历删除 ...

  5. Python爬取全站妹子图片,差点硬盘走火了!

    在这严寒的冬日,为了点燃我们的热情,今天小编可是给大家带来了偷偷收藏了很久的好东西.大家要注意点哈,我第一次使用的时候,大意导致差点坏了大事哈! 1.所需库安装 2.网站分析 首先打开妹子图的官网(m ...

  6. 利用PowerDesigner逆向工程导出PDM模型及生成文档

    原文:利用PowerDesigner逆向工程导出PDM模型及生成文档 最近需要对老项目进行重构优化,由于项目都是好几年前的,相关设计资料很不全,最基本的数据库设计文档都没有,只能利用PowerDesi ...

  7. HDU 1561 The more, The Better(树形背包)

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. jenkins 之 iOS 打包及上传至蒲公英

    准备条件 iMAC(要 Mac OS 系统,安卓 和 苹果 可以在同一台电脑上打包) xcode 最新版,要已安装对应的开发证书(生成一个 Ad-Hoc 类型的包就有了) brew(当前管理员账户安装 ...

  9. nuc 第二届山西省大学生程序设计大赛 魔力手环

    problem 很妙啊--发现状态转移矩阵每一行都可以由上一行平移得到,每次只算第一行然后平移,\(O(n^3)\) 就变成了 \(O(n^2)\). #include <iostream> ...

  10. hexo博客发布注意事项

    最近把hexo博客内容写完了,就发布到github上面去,结果就出现各种一些小问题. 1.发布之后,hexo博客的css与js无法访问. 原因:没有配置正确的url路径.(配置文件_config.ym ...