|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
iOS5开始支持CoreImage了还没去看Mac上的CI是很强大的CFNetwork---从来没用过我一般都会用ASIHttpRequset封装好的高层网络库OBJC实现的CFNetwork好像是C实现CoreLocation---获取位置的库工具很少写如许的文章简单露怯,由于我不晓得甚么是业界真正轨范的做法,这里写的只是本人以为对照复杂易用的最好理论,写出来生怕会被年夜牛笑话,也影响本人的多年码农的抽象。不外办法越多,新人越难把握,以是提醒一下也是好的,接待切磋。
实在这个标题里包括了两个工具,传送变量和挪用办法,这两个的处置是纷歧样的,由于之前看了CocoaChina上的那篇文章是混在一同写的,以是这里也放在一篇文章里写。
变量传送
一般就是指要在一个ViewController内里读取到别的一个ViewController中的变量,好比弹出一个新界面的时分,必要晓得本来的界面以后的SegmentControl如今选中的是哪一个形态之类的,固然也有更庞大的,全局通用变量的处置也在这个范围内,良多View都要用到统一个变量,好比以后登任命户的身份。
这里最复杂的体例有两个,一是经由过程文件体例传送,固然,你不必本人完成读写文件,只需利用NSUserDefaults就能够了,它内里能够放进任何可以被序列化的复杂变量,全局都能够读取,由于这个类自己是供应单例形式会见的,只需在任何中央修正了某个key对应的value,挪用一下同步函数,这个值就被写进磁盘了,在任何别的的中央从头读取这个key,就可以取到最新的value。并且这个值是永世保留的,程序重启也不妨。
第二个办法是经由过程appDelegate,它也是全局的,自己供应单例形式会见,以是不用忧虑会见到统一个类分歧对象的分歧变量值。只需你在AppDelegate.h内里界说的变量,在任何ViewController内里,猎取[[UIAppcationsharedApplication]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 |
|