若天明 发表于 2015-1-18 11:48:30

IOS制作之iPhone开辟中两个UIViewController间传送变量和挪用办法的处置仓酷云 ...

iOS5开始支持CoreImage了还没去看Mac上的CI是很强大的CFNetwork---从来没用过我一般都会用ASIHttpRequset封装好的高层网络库OBJC实现的CFNetwork好像是C实现CoreLocation---获取位置的库工具很少写如许的文章简单露怯,由于我不晓得甚么是业界真正轨范的做法,这里写的只是本人以为对照复杂易用的最好理论,写出来生怕会被年夜牛笑话,也影响本人的多年码农的抽象。不外办法越多,新人越难把握,以是提醒一下也是好的,接待切磋。
实在这个标题里包括了两个工具,传送变量和挪用办法,这两个的处置是纷歧样的,由于之前看了CocoaChina上的那篇文章是混在一同写的,以是这里也放在一篇文章里写。
变量传送
一般就是指要在一个ViewController内里读取到别的一个ViewController中的变量,好比弹出一个新界面的时分,必要晓得本来的界面以后的SegmentControl如今选中的是哪一个形态之类的,固然也有更庞大的,全局通用变量的处置也在这个范围内,良多View都要用到统一个变量,好比以后登任命户的身份。
这里最复杂的体例有两个,一是经由过程文件体例传送,固然,你不必本人完成读写文件,只需利用NSUserDefaults就能够了,它内里能够放进任何可以被序列化的复杂变量,全局都能够读取,由于这个类自己是供应单例形式会见的,只需在任何中央修正了某个key对应的value,挪用一下同步函数,这个值就被写进磁盘了,在任何别的的中央从头读取这个key,就可以取到最新的value。并且这个值是永世保留的,程序重启也不妨。
第二个办法是经由过程appDelegate,它也是全局的,自己供应单例形式会见,以是不用忧虑会见到统一个类分歧对象的分歧变量值。只需你在AppDelegate.h内里界说的变量,在任何ViewController内里,猎取[delegate],再挪用它的该变量的名字就能够了,取值大概赋值都无所谓,该变量对全部使用程序都是能够会见的。体系供应的CoreData模板中Context的会见体例就是如许完成的。
另有第三个体例,跟上面的办法挪用一同说。
办法挪用
办法挪用就是指在一个ViewController内里必要挪用别的一个ViewController内里的某个办法,事务也能够回为这一类,好比以后真个这个ViewController完成了处置义务必要封闭的时分,请求它前面行将必要显现出来的谁人ViewController革新本人的页面,以便把最新的数据显现出来。
完成事务挪用的举措最尺度的是delegate。界说一个新的delegate接口,内里是某个办法大概事务的界说,不包括详细完成。被挪用一方的ViewController完成该接口,并完成该办法的详细内容。挪用一方必要声明该delegate范例的一个变量,在必要挪用的时分,间接把这个变量当做被挪用的谁人Controller类来用,好比myDelegate.DoXXX();如许做了以后,在挪用方的ViewController实例化的时分,必要将被挪用方的实例赋值给它的myDelegate变量才行,要否则它就是个空指针了。这类完成体例之以是尺度,是由于对换用方没有束缚,这个类能够便利的重用,也就是松耦合计划,今后别的的项目能够把这个类复制已往,一行不必改,只需包管有其余类完成了这个delegate并被传送出去就能够了。
别的一种简化的办法是,间接将被挪用方的类界说成挪用方的一个变量。好比在ChildController内里界说一个变量RootViewControllermyRoot;然后实例化该类的时分间接child.myRoot=self;这时候候在child外部,对myRoot这个变量是能够随心所欲的,它内里的办法你能够任意挪用,包含革新它本人的界面,大概改动某个控件的形态和值,大概改动它内里的某个变量的值(这就是下面说的传送变量的第三种办法,仅限于两个Controller之间),都是能够的。不外这时候候就是紧耦合了,这个ChildController不便利拿到其余项目里往用,由于它内里把RootViewController的办法给写逝世了。不外假如你也没盘算今后在其余项目里重用它,如许做能够免却很多代码。不外同时你还得当心被你挪用的谁人rootController,此时有无被体系给开释失落。假如在child内里界说变量大概传送变量过去的时分把它retain了,一样平常不会呈现这类成绩。
OK,就说这么多。

所以你可以用很多方法存储数据比如最长用的sqlite当然如果另类也可以用plist文件或者其他NSManagedObjectContextNSManagedObjectContext

小女巫 发表于 2015-1-21 15:21:26

培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。

活着的死人 发表于 2015-1-30 20:23:18

在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。

飘灵儿 发表于 2015-2-6 00:19:27

最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。

不帅 发表于 2015-2-6 19:52:02

这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。

柔情似水 发表于 2015-2-10 09:12:35

这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。

飘飘悠悠 发表于 2015-3-1 06:25:29

学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。

小妖女 发表于 2015-3-1 16:15:52

其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。

精灵巫婆 发表于 2015-3-5 03:25:39

开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦

金色的骷髅 发表于 2015-3-11 22:57:05

我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。

只想知道 发表于 2015-3-19 15:42:33

学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。

变相怪杰 发表于 2015-3-21 11:37:31

还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。

莫相离 发表于 2015-3-26 23:55:18

还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。

因胸联盟 发表于 2015-4-1 19:11:24

同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。

兰色精灵 发表于 2015-4-2 22:55:14

中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,

admin 发表于 2015-4-4 19:35:19

其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。

乐观 发表于 2015-4-11 02:10:30

AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。

分手快乐 发表于 2015-4-15 10:02:34

同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。

仓酷云 发表于 2015-4-26 11:12:15

iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
页: [1]
查看完整版本: IOS制作之iPhone开辟中两个UIViewController间传送变量和挪用办法的处置仓酷云 ...