iOS自动打包程序mac版,我遇到的那些坑(一)界面篇

之前一直使用的打包脚本不好用了,再加上一直对自动打包很感兴趣,所以决定自己动手 DIY 一个自己的打包程序。为什么要选择 OS X 的源生程序而不选择脚本呢?原因有三:

1、对这个 iOS 的亲爸爸有点好奇。

2、觉得自己凭着对iOS的理解可以完美驾驭OS X。

3、电脑才是程序猿的真爱,所以我觉得做一个电脑程序的成就感远大于手机。介绍完前提了,马上开始动手迎战mac程序。先打开吃饭的家伙Xcode,选择新建OS X工程。赫然看到程序中的mainMenu.xib十分碍眼,决定动手干掉(PS:由于本人对纯代码十分偏执,所以新建的任何类都不包括xib文件但是也遇到了不少问题,耽误了点进度)。然后我就傻眼了,didfinishlaunch都不执行... 想了想自己还是火候不够,暂时妥协(PS:我会回来的~)。run了一下工程算是我的 mac 版的 hello world 吧,一个灰色的面板,我心想未来的这段时间我就好跟你玩命了。

打了个招呼马上动手,我在程序的 appDelegate 中看到了一个 window 的弱引用属性,纯代码的偏执又来了,打开了mainMenu.xib一看,小样果然躲在这里,毫不留情一个delete删掉,删掉弱引用属性,看了看干净的appdelegate心中无限的畅快。

(第一坑)

再 run 程序,麻烦来了窗口没了...怎么办?怎么办?结合刚才删的弱引用属性,我应该是没有显示的 window 了。查了一下文档发现原来 OS X 的程序和 iOS 的程序在显示的时候理念相当不同,此处我大致说一下我的理解其他还是需要大家自己体会。

(iOS 和 OS X 的显示基本概念区别)

iOS 受限于手机的显示屏的尺寸,为了更好的用户体验所以每个程序基本只有一个 window ,也就是我们所说的窗口。当然有限情况我们也会在不知不觉中引入其他的 window ,不过 iOS 系统已经为我们做了优化,你可以无痛的使用。在 iOS 的世界里基本单位是 View 和 ViewController,虽然 mac 中也存在 view 和 ViewController 但位置远没有像在 iOS 那么风光无限。mac 中每一个窗口都是一个 window 可以拖动,调整大小,打开关闭。而 View 和 ViewController 就是其中的一些控件组成元素,展示控件云云。

(第二坑)

既然这样我们创建一个 window 吧,基于 MVC 的设计模式的思想,我创建了一个 windowController 果断点掉 xib,run 一下程序发现竟然什么没有。关掉查了一下, windowController 中并没有自动为我们创建 window (PS:心中暗暗的后悔),需要自己手动创建,动手。还是什么也没有。我都傻了,各种试各种查,最后一个偶然的机会发现是由于没有手动持有!!!感觉 rootwindow 并没有被系统持有,被自动释放掉了,所以并没有显示,再此特别提醒,window 一定要手动持有,切记。

(第三坑)终于显示出来了,真是没想到作为iOS的生父,竟然如此大的差别,擦擦眼泪让我们继续,我想还是先从简单的入手吧。既然要显示,自然离不开伟大的tableview,坚持纯代码路线不动摇,先从代理入手吧,看了一眼NSTableview的delegate和datasource就崩溃了,好像看见了最熟悉的陌生人一样。光说太抽象了,还是看看图吧。

赫然引入了一个新的概念column,顾名思义就是列的概念,我不是很熟也就不班门弄斧了。可是在用代码实现tableview的时,初始化,实现代理,可是不止界面上干干净净连代理都没有进。再次入坑,这次解决办法是,使用addTableColumn方法为tableview添加一个column,我理解系统是把column当成了一个基本的显示单元,如果刷新的时候找不到,就认为没有东西要显示不会进任何datasource代理方法,不会显示任何东西。

- (void)addTableColumn:(NSTableColumn *)tableColumn;

仔细观产了一下NSTableview的继承树,真的UITableview的设计理念有很大的不同。一开始我很不理解,仔细的考虑了一下,这可能是和哥俩的使用系统环境决定的,那我们就分别来看一下他们的继承树。

这样我们就基本扫清了,显示控件的坑。接下来我们开始完成我们的打包功能。

(未完待续)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,067评论 4 62
  • 老板正在用我手机给客户打电话,预计还要半个小时左右才能结束通话,来来来,插上耳机,把作业写了,这次对上次看的书《断...
    一夜读阅读 218评论 0 2
  • 今天跑步的时候,看它们在阳光下开得好灿烂,忍不住拍下来,美好的东西总是让人挪不开目光。 花在阳光下,阳光在花里。 ...
    潘小丫阅读 274评论 4 5