从网上找了本快速入门的书本:Objective-C根本教程(第2版)
根据里面的知识点,从c到objective c的转换,花了一周韶光把整本书的内容啃了一遍(本人比较笨以是比较慢 ),创造好多知识点根本看不懂,但不影响我跳过,如“种别”、“协议”、“委托”、“内存管理”、“谓词”等,看完了之后,自认为可以去试试mac下进行开拓。结果创造,xcode不会利用,只能创建项目,代码加哪里?对一个ide都不熟习怎么能写代码,mos对应fundation+appkit,ios对应fundation+uikit
2、xcode下运用开拓,框架fundation和uikit(紧张找到函数入口,写代码的地方)
于是学习xcode的利用,在网上找了好几天关于xcode和ios运用开拓教程,创造objectivec的ios运用开拓教程险些找不到,要么便是慕课网、极客学院那些费钱的,要两三千大洋。bi站的ios运用开拓都是swift,并非oc。找不到,咋办?硬着头皮看一下swift的运用程序开拓(此时还没学swift),从视频中知道,运用程序加代码都是在view的几个生命周期函数里面,如viewcontroller下的viewdidload等(搜嘎,事理和之前的Android开拓差不多,也是生命周期函数,以是get到了),于是看了视频后,就能够找到准确加代码的地方!糟糕,溘然想起ios开拓须要开拓者账号、开拓证书之类,懵逼了,不懂啊,这都是啥玩意。经由讯问好友(ios开拓的),本地调试不须要开拓者账号,说我手机之前做过认证,有证书。反正便是一脸懵逼,一句话便是说我的AppleID可以开拓。包括获取摄像头是否须要权限,也问清楚确实不用!
然后用看到的swift教程,去模式objective c的运用开拓,结果创造程序架构完备 不一样,入口长的不一样,api文档看不懂,不知怎么用,寸步难行。挣扎至于找到了一线活气,在51自学网(没有打广告的意思)找到了教程,须要费钱,一节课3个币,想起当年,六七年前充过钱,果真还能用,于是挑了十来个比较关键的视频看了,终于找到了写代码的入口:生命周期函数!
接下来要找个开源的获取构造光数据的运用,刚开始找到ios开拓文档中的AVCam:
一看源码,哇勒个去,还真多,加上不习气oc的语法,看的有点蒙,紧张是对api不熟,一大堆参数,不懂啥含义。然而又找不到其他的代码例子,或者就算找到其他的例子,是否又能真的看的懂?真的知道在哪里取数据?在哪个委托事宜取?如何取?这就面临一个无法避免的问题,必须看懂api,否则原地踏步!
ok,开始啃代码。由于项目韶光问题,不可能啥代码都要啃,必须有个大局不雅观,整体思路得清晰。就奔着这个目标,先弄清楚生命周期函数都有那些,加个log打印一下,ok,大体知道那几个函数是自己须要关心的。缩小了范围后,但是还依然很多委托,很多函数,不知所云,先过了 一遍,大概知道每个函数的基本功能,比如哪几个是点击按钮触发,用于更新ui,过滤一部分后,还剩下几个比较大的函数,核心代码都在里面。于是每个函数都加个断点,然后调试点击事情,挨个找对应的调用韶光,结合app的功能逻辑,ok,又缩小了范围。整体有个清晰的脉络,然后开始细啃代码,一步一步跟踪代码,花了两三天,终于啃下来了。却创造,这个app里面没有深度信息干系的数据!
!
!
这几天就这么空费了,实在也不然,真的看懂了干系逻辑,ios里面各种线程,行列步队满天飞,各种委托,如何定义,如何回调,还是有不少的收成,至少,我不怕他了,不恐怖了。于是,重新找其他的开源代码,几番挣扎,找到了深度信息的源码,TrueDepth,想要源码的可以私信我。拿到源码,于是先大致瞄一下是什么功能,以免又拿到无用的代码。却创造,人家用的是swift!
开始了新的大坑。swift,还没学过语法,于是去3Cschool找干系的入门级别教程,创造大体和Python、php等语法差不太多,看来swift还是很人性化的,逐渐往弱措辞靠拢。花了一天,过完了根本篇。开始看代码,懿!
代码的繁芜写法好秀,和根本篇的不是一个观点,毕竟人家是根本嘛。swift中的?和!
满天飞,咋的一看真的头大,反正我现在也摸不清何时用?何时用?进坑开始!
3、数据获取、写文件、导出
数据已经找到在哪里获取了,那么新的问题是,如何把这些数据导出来,到window下进行读取写算法?对付小白的我来说,在网上也找了好多种说法,觉得都不太ios,只怪我根本太弱,看不懂里面的精髓!经由和朋友互换,总体结论是:ios的运用自带一个沙箱,所有文件都在里面保存,不许可带出,要想获取里面的数据,有以下几种办法:1、通过socket传输数据(很通情达理),2、编写下载器(我靠,这是什么玩意,我怎么可能会),3、xcode有个设备管理,有个下载,能够把运用程序内部文件搞下来(当时不理解啊,先找的都是前面的两种办法,排坑嘛,总有个像样的坑)
目标:
1、找到下载器的编写方法,找了好久,呵呵呵,找不到得当我这种小白的,看不懂。更别说写了
2、socket传输貌似可行,于是先写个1.txt,然后传输(想法完美!
)
写文件的教程都是oc的,swift的根本教程没有写文件的例子,找不到啊老铁,在网上找到了好多个版本,敲完代码各种报错,说不存在这个函数,不存在这个参数,真TM的swift!
理解才创造swift从1代到6代,变革太大,网上的例子都是前面五代的,13、15年一大堆,各种都是复制粘贴的,看过千篇一律的大把,而我便是写不出来啊老铁!
如果用c++,我一分钟搞定的事,在swift折腾的没脾气,各种提示报错,try一定要带do{}才能捕捉,报错网上搜,都不一样,当然是我菜,理解不了。迫于无奈,只有重新去看api文档,声明就写在那,你不知咋用,比如声明:init?(String)便是去世活不会调用,又找不到参考代码,几番折腾,去理解ios的文件系统,终于看到了一行,用NSString就能够实现写文件操作,牛掰啊,不懂api的至心不知,竟有如此妖孽的思路,这或许便是ios委托的牛掰之处吧,于是获取沙箱路径,拼接路径,判断文件是否存在,然后写helloworld,摸了一下午可算写出来了。print(“create file success!
”),不随意马虎啊!
文件取出: xcode->window->devices and simulators->选自己的设备->选自己的App->选择设置->download container。
然后你会得到一个.xcappdata文件,邮件看内容,找到1.txt
ok,开始写相机内参、深度信息数据的代码了!
加油!
api文档至心看不惯!
同样的操作,自己用c++可以随意写,ios就折腾的弗成!
swift坑真多,不知是想让更多的人用还是想赶走更多的人,反正越有寻衅的技能越多人研究吧!
岗位信息,"大众年夜众号回答内容:岗位
更多内容请关注"大众号“图形学算法”