第一章:Quiz应用快速搭建

黑洞算法
• 阅读 2214

第一章就是快速创建一个小项目认识一下iOS开发。

创建项目

  • 书中建议使用empty application模板,然而xcode7中最简单的模板已经是single view application了。
    所以要么是下载一个新的空模板,要么是自己用single view application模板创建一个新的。具体的参考这里

  • class prefix在xcode7中创建项目的时候好像没了,不过可以在项目里file inspector(右侧扩展框里)中的project document中设置。

创建视图控制器和xib界面

  • xcode7里直接用cocoa touch框架的cocoa touch class即可,objective-c file很多代码都得自己写……

  • 创建viewController的同时可以勾选alse create xib file。后面会提到viewController类名和xib文件名相同的便利性。

  • xib的画布局不怎么写代码,拖来拖去。相对于android来说选择性少一点,android的xml至少可以写代码。

  • 右侧扩展栏包括utilities area 和object library。前者就是选中view对象后可以各种设置,后者则是一个view的对象库,直接从里面拖过去用。

  • xib在项目构建时生成对应的nib文件,这个在书中被视为一种资源,和image、video一样。

创建关联

  • xib中拖过去的每一个控件都应该在对应的viewController中关联相应的插座变量outlet,否则无法从viewController中进行设置(不过如果不设置的话是不是就可以不加这个outlet了?)。

  • 控件如果有交互的话还需要关联动作action。这个有点类似于android中的onClick这一类。

  • 插座变量声明:IBOutlet 空间类型 对象指针;

  • 插座变量关联设置是从file‘s owner右键关联面板(里面包括了outlet和action),从outlet的圆圈拖到控件上。

  • action是viewController内部定义的方法,关联设置是控件用右键(或按住control)拖至file’s owner上选择action。

创建模型对象

  • model一般来说应该另外创建一个类,不过Quiz是个小程序,所以直接用NSString了,其初始化方法中进行了model的创建。

  • 代码补全,xcode用到现在基本的也该会了。后面会有自定义的代码提示使用讲解。

AppDelegate

  • AppDelegate是iOS应用的启动入口,应用的生存周期方法都是在这里实现。

  • UIWindow为应用唯一的主窗口。可以认为应用的所有视图都是在UIWindow中换来换去。

  • 在AppDelegate中通过self.window可以获取UIWindow对象,其rootViewController属性指向的viewController,该viewController的view是程序启动时显示的入口view。

运行应用

  • 真机调试需要申请apple developer账号。需要注意的是申请信息和账单信息最好一样,不然apple会发邮件给你让你确认耽误时间。打apple developer support的电话要等好久才接通。

  • 应用图标需要注意像素,尤其是retina屏的,像素都要*2。另外书里提供的bignerdranch资源和代码下载链接失效,参考译者的资源

  • 应用图标和启动图片都要放到Images.xcassets中。这里似乎也可以新建目录放别的图片,不过似乎别的图片也可以不放在这里……

总结

这一章内容不多,尤其是二周目来看的时候。不过没提到自动布局和代码生成view的内容。应用图标和启动图片的设置是后面都没提的,需要的时候回来看。

点赞
收藏
评论区
推荐文章
代码哈士奇 代码哈士奇
4年前
带你使用uni-upgrade-center搭建APP更新系统(升级中心+应用升级)
哦我完成了uniapp手机app开发,如何让他更新呢我来告诉你说明:分两块,一块是应用升级管理系统,一个是应用检测自己版本及更新我是代码哈士奇此文章来源为代码哈士奇,个人主页:@uniupgradecenterAdmin搭建升级中心创建uniadmin模板应用我们之前已经讲了如何之所以先创建uniadmin模板应用是因为uniupgradec
Stella981 Stella981
3年前
JavaScript模板引擎原理,几行代码的事儿
一、前言什么是模板引擎,说的简单点,就是一个字符串中有几个变量待定。比如:vartpl'Hei,mynameis<%name%,andI\\'m<%age%yearsold.';通过模板引擎函数把数据塞进去,vardata{"name":"BarretLee","age":
Stella981 Stella981
3年前
Elasticsearch Index Templates(索引模板)
索引模板,故名思议,就是创建索引的模板,模板中包含公共的配置(settings)和映射(Mapping),并包含一个简单触发条件,及条件满足时使用该模板创建一个新的索引。注意:模板只在创建索引时应用。更改模板不会对现有索引产生影响。当使用createindexAPI时,作为createindex调用的一部分定义的设置/映射将优先于模板中定义的任
Easter79 Easter79
3年前
Thymeleaf实用实例
1\.简介之前一直使用Freemarker,对Thymeleaf了解但是不熟悉,最近因为其他项目组他们要快速搭建后台,使用了一个三方的框架用到了Thymeleaf,所以进一步了解了一些。发现Thymeleaf更加像前端的模板语言,所以对静态页面有更好的兼容性,就是,如果是Freemarker模板文件,浏览器是解析不了的,会直接出错。而
Wesley13 Wesley13
3年前
VS2017 创建自定义WPF项目模板和项模板
注意:本文主要是介绍建立WPF程序的模板,其他类型的模板并不确定以此方式创建有么有没问题一、项目模板的创建1.首先确保你的VisualStudio已安装VisualStudioSDK这个组件,如果安装的时候,没有勾选掉,默认都有。2.然后新建解决方案,再新建项目,会看到如图的界面!(https://oscimg.
Wesley13 Wesley13
3年前
Java匹马行天下之一顿操作猛如虎,框架作用知多少?
流行框架:框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。下面我来对各大流行框架做个梗概:Struts先说第一个框架Struts,它是干嘛的,原来我们写Servlet的时候不停的用Request,R
Wesley13 Wesley13
3年前
TDD两小时实现自定义表达式模板解析器
为什么要重新造一个车轮?很多情况下,用户需要按其自定义模板动态生成邮件、PDF。开源组件中,有两类较贴合需求的产品系列:1.模板渲染引擎,如FreeMarker,Velocity虽然强大异常,但是过于灵活,不利于按需裁减出自己想要的少量语法;2.纯字符串模板引擎,要么取数据不够动态(需要提前预知有哪些变量),或者是语法冗长
少湖说 少湖说
6个月前
鸿蒙原生开发手记:01-元服务开发
简介元服务是鸿蒙中的一种轻量应用形态,无需下载,直接运行。类似于微信小程序,但与小程序不同的是,元服务更加轻量。元服务使用原生开发,是系统级提供的,无论从易用性、性能、体验上,都要比小程序好。创建元服务使用DevEco,点击Create,左侧模板选择Ato
京东云开发者 京东云开发者
6个月前
AIGC项目中的【模板进程】方案的设计实践
作者:京东科技贾玉龙1项目介绍1.1项目背景简单一句话:模板进程是流程的子流程;往往用于比较复杂的aigc项目流程中。由于一个模板有多个流程,一个运营人员可以操作多个流程,也可创建多个流程。在模板推荐时,就会导致不知道是哪次流程。1.2项目目标为了区分模板
陈杨 陈杨
1星期前
HarmonyOS5云服务技术分享--Serverless搭建抽奖
✨【实战指南】手把手教你用华为AGCServerless模板快速搭建抽奖活动✨嗨各位开发者小伙伴!今天给大家分享一个超实用的技巧——用华为应用市场AGC的Serverless模板三分钟搞定抽奖活动搭建。不用写后端代码,不用操心服务器维护,特别适合想快速上线