关于xcode 9.0数组问题的遇到的坑
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数组问题的遇到的坑的更多相关文章
- xcode 5.0中,新的开发者证书加载方式
按照先前从网上看到的参考,开通了开发者账号之后,要先在本地生成一个request文件,然后上传苹果开发者网站,然后在官网上生成一个证书.cer文件,拿这个文件在本地生成p12文件,然后就是一堆鸡零狗碎 ...
- xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)
xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...
- Xcode 5.1.1 与 Xcode 6.0.1 共存
Xcode 5.1.1 (下面简称Xcode5)和Xcode 6.0.1(下面简称Xcode6)都是正式版本号.其应用程序文件名称都是"Xcode".假设通过AppStore升级或 ...
- 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 ...
- Xcode 7.0 官方免费的真机开发
Xcode 7.0 官方免费的真机开发 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...
- Xcode 9.0 新增功能大全
Xcode是用于为Apple TV,Apple Watch,iPad,iPhone和Mac创建应用程序的完整开发人员工具集.Xcode开发环境采用tvOS SDK,watchOS SDK,iOS SD ...
- 第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 ...
- 在 Win 7或8 下使用 VirtualBOX 虚拟机安装 OS X 10.11 El Capitan 及 Xcode 7.0
注:本文源自于: http://bbs.feng.com/read-htm-tid-9908410.html _____________________________________________ ...
- Xcode 8.0 新特性 & Swift 3.0 增加的变动
从 Xcode 8.0 开始,目前所有的插件都无法工作! NSLog 无法输出 -- 此bug等待正式版本... Xcode 提供了文档注释快捷键option + cmd + / 但是要把系统升级到1 ...
随机推荐
- redis学习笔记(1)
最近在学习redis,做了比较详细的学习笔记,分享给大家,欢迎一起讨论和学习 第一部分,简单介绍redis 和 redis的基本操作 NoSQL的特点 : 数据库种类繁多,但是一个共同的特点都是去掉关 ...
- jenkins 全局工具配置
- vue 项目白屏解决方案
在做的项目是使用 vue-cli 脚手架为基础的,只能使用微信浏览器打开的.在某次更新功能代码后,被反馈在一些手机上会出现白屏.经过一番探索,多管齐下解决了问题 白屏可能的原因: es6 代码没有被编 ...
- DAOMYSQLI工具类
<?php //DAOMySQLI.class.php //完成对mysql数据库操作,单例模式 //开发类 //1. 定类名 //2. 定成员属性 //3. 定成员方法[查询,dml操作] f ...
- Python9-网络编程3-day32
解决黏包的问题 #server import socket sk = socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() conn,addr ...
- cf 1017C
C. The Phone Number time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 通过Proxool配置访问数据库的要点
proxool 配置的时候有Proxool.properties 或者 Proxool.xml 两种方式初始化. 我的配置环境是 myEclipse10+tomcat6.0 + mysql5.0 . ...
- Mysql新建数据库、删除数据库
新建数据库 create database db_name; //db_name为新建数据库的名字 mysql> create database db_name; Query OK, row a ...
- UVa 465 Overflow——WA
上次那个大数开方的高精度的题,UVa113 Power of Cryptography,直接两个double变量,然后pow(x, 1 / n)就A过去了. 怎么感觉UVa上高精度的题测试数据不给力啊 ...
- ogre3D学习基础6---场景管理器的使用
场景管理器的使用 最常使用的坐标系统空间(同时也是Ogre程序所能提供的)即是世界空间(World).父节点空间(Parent)以及本地空间(Local). 1.世界空间 就是物体所存在的地方,当我们 ...