关于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 ...
随机推荐
- k8s的Pod控制器
pod的配置清单常见选项: apiVersion,kind,metadata,spec,status(只读) spec: containers: nodeSelector: nodeName: res ...
- 【Python高级工程师之路】入门+进阶+实战+爬虫+数据分析整套教程
点击了解更多Python课程>>> 全网最新最全python高级工程师全套视频教程学完月薪平均2万 什么是Python? Python是一门面向对象的编程语言,它相对于其他语言,更加 ...
- Laravel核心解读--Console内核
Console内核 上一篇文章我们介绍了Laravel的HTTP内核,详细概述了网络请求从进入应用到应用处理完请求返回HTTP响应整个生命周期中HTTP内核是如何调动Laravel各个核心组件来完成任 ...
- solr配置中文分词器
配置IK分词器 在/opt/solr-7.7.1/server/solr-webapp/webapp/WEB-INF/lib目录中加入IK分词器的jar包 在/opt/solr-7.7.1/serve ...
- POJ:2955-Brackets(经典:括号匹配)
传送门:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS Memory Limit: 65536K Description We g ...
- jenkins执行构建并查看结果
继完成构建项目配置http://www.cnblogs.com/yajing-zh/p/5111060.html后,则要执行构建. 回到jenkins主页之后,我们看到一个新建的项目显示出来: 点击进 ...
- virtual function c++
之前一直不明白为什么要用虚函数,我只知道这样的规则, Base b = new derived(); b->do(); 调用的是子类的do(): virtue class只是一个虚拟的,调用的是 ...
- git 强制回到以前版本
git reset dfd3e36a641340a0b86f811df869c4375fabeff2 --hard
- hexo博客发布注意事项
最近把hexo博客内容写完了,就发布到github上面去,结果就出现各种一些小问题. 1.发布之后,hexo博客的css与js无法访问. 原因:没有配置正确的url路径.(配置文件_config.ym ...
- python学习-- Django model -class 主键自增问题
转自:http://blog.csdn.net/mapoor/article/details/8609660 prize_id = models.IntegerField(primary_key=Tr ...