从今天开始开一个坑,由于业务变动,要开始学习IOS开发进行IOS app开发,其实鄙人本身就是一只菜鸟加大学狗,有过两年的C#,ASP.NET MVC,微信公众平台开发经验,一只在继续努力着,从大三下学期转型进入IOS开发领域,虽然感觉其实IOS这边水还是很深的,但是既然要转型,那就学个痛快!

本文会保持持续更新,我会当做一个学习日志来写,当然学习IOS的话会需要很多的设备,比如MAC,iPhone,当然还有一些书籍,我这边花了4,5天大致浏览的一下我能接触到包括借到的书目,大抵推荐几本作为参考书目,也方便大家的选择.

<Head First iPhone Development 深入浅出 iPhone开发> 这本是我觉得图文非常多的,其实我觉得刚开始学最好还是看这样图多话多的,虽然有时会浪费一点时间,但学习会变得很有趣,当然这个数是在iPhone3s 时代产物,很多东西都已经变化了,但如果作为参考还是挺不错的

<iOS 软件开发揭秘-iPhone&iPad企业应用和游戏开发> 我主要看的还是这本书的第二章,由于没有obj-c的经验,所以作为参考资料观看

<Cocoa入门-使用obj-c>这本和上一本一样,也是作为参考资料看的,都可以增加自己对obj-c的认识

当然你想好好学obj-c的话我推荐你去看<objective-从基础教程>他是我见过学长做笔记做的最多的一本书了,可以好好的学习obj-c,不过我还是希望吧obj-c当做一种工具,我们先学会用,在去学为什么要这样写...

<iOS 6开发范例代码大全>这本将作为主要参考资料开参考,我现在使用的xcode版本是5,理论开发应该是iOS 7但是我实在找不到iOS 7的比较优秀的参考资料,如果各位有任何资料的话,也可以留言在评论区,谢谢.

然后来说一下准备工作

1.你需要有一台Mac系统的电脑,我的话老师发我了一台MacBook pro使用,你也可使用虚拟机在虚拟机上安装一台Mac系统的虚拟机你可以参考http://www.cnblogs.com/2018/archive/2010/12/17/1909488.html

2.由于你需要测试,你需要一台iPhone手机,虽然你可以使用Xcode提供的模拟器,但是你想想,每当你要测试摇一摇功能的时候,你举着你的MacBook在你老板面前摇的时候会是什么感觉,而且貌似MacBook没有陀螺仪,当然老师还是发了台手机给我测试...其实你只要有一台能够更新到iOS 7的iPhone手机便可以了

3.开发环境,你可能需要安装iPhone SDK,你需要到http://developer.apple.com/iphone获取iPhone developer apple ID和密码,然后下载最新的iPhone SDK for iPhone OS,当然还有Xcode,这里涉及了Apple开发者认证,即常说的IDP(iPhone developer program),其实在没有拿到IDP的情况下,你只要将iPhone越狱还是可以的,不过...(你懂得)[坏笑]

好了上面的都有了,是时候让我们开始say "hello world!"了...

打开Xcode 你将会看到如下界面

当我们点击Creat a new Xcode Project后,其实你如果和我一样是刚开始用Mac系统,你会发现上面的标题栏其实是随你focus的那个窗体而改变的

我们就创建一个 single view application吧

Product Name(产品名称) 就是项目名啦

Organization Name(机构名称) 如果有的话就填,也可以填自己名字  

Company Identifier(公司标识符),最好填因特网域名,如果有的话

当然还可以填一个类前缀,以前研究C#的时候没听说过,不过貌似填了所有为你创建的类将会带上这个前缀,区分其他第三方代码重名

Devices 你可以选择iPhone 当然你如果是开发iPad 你也可以选,也可以选Universal,但这样的话模板就会显示更多的代码了

然后就是设置保存路径了,点击Create按钮会生成一个自带委托的应用程序

见证手速的时刻到了,让我们迅速点到Main.Storyboard,并快速拖一个按钮

当然你得确定①中右边的utilities view面板是可见的,然后快速找到②button,拖到③ view中你会发现④中多了一个button,然后就想C#一样,让我们来修改button的属性吧

IOS的属性列表是一个"盾墙"图标,点击后你将可以看到他的属性,并修改他,我们把button的内容文字改成了"正面上我!!!"

然后我们选择一个比较快点创建按outlet的方法,其实从刚创建项目我看到controller那一刻起我就在怀疑是不是使用mvc架构的,但是我还是不确定,知道我看了outlet的定义,我觉得极有可能ios也是使用mvc架构的,而outlet就是mvc架构中view和controller绑定的中间件了....我们可以按照上图右上框的选中方式,只选中燕尾服的图标,别的都不选,这样就会出现纵向平铺的两个窗口,在左边窗口的button上按住ctrl然后拖,会有一根蓝线,我们拖到@interface ...@end之间这里应该是声明属性的地方,我们会发现拖过来的时候会有一个灰色的小框上面写着[insert outlet,action,or outlet collection]说明我们拖过来的可以生成这三种类型的代码,是不是感觉挺方便的,让我们看看放开鼠标后会怎么样

bio~我最喜欢的扁平化设计,看这个箭头,多么的舒服哈哈

我们在name中打入我们这个outlet的名称,饼确定connection是outlet,由于现版本(ios5.0+)都使用了ARC(我喜欢把他翻译成自动内存管理),outlet总是有weak存储类型,objective-c属性一般是要用strong存储类型的,但outlet是个例外,我们可以认为weak类型可以不用特定的编写内存管理,那样可能可以便于理解

让我们在拖一条线,之前我们声明了按钮和controller的绑定,现在我们给按钮添加一个事件

首先要确保connect 是action

命名的话我希望是弹窗所以我命名为Alert

Type: sender参数的类型,可以使一般性的类型id,也可以是具体的类型

Event:选择你所要响应的动作事件类型

Argument: 表示这个动作方法的参数可能为

1.None 2.Sender:类型为Type属性指定参数 3.Sender and Event: Event是个带有发生事件额外信息的对象

我们确定后会发现用ctrl+拖线完成的代码前面会有一个小灰点,现在我们可以在最下面的方法体内写方法了

我们添加

- (IBAction)Alert:(id)sender {

UIAlertView *alert=[[UIAlertViewalloc] initWithTitle:@"Testing Action"message:@"Hello World"delegate:(nil) cancelButtonTitle:@"Dismiss"otherButtonTitles:nil];

[alert show];

}

然后点击左上角的三角形,运行一下看看

当我点击正面上我之后,helloworld就出现了,虽然是一个警告框,但是我们预想的helloworld还是出现了,挺高兴的...然后让我们来记录一些错误

有时候你删除了代码中的动作方法outlet饼用新内容替换的时候会出现连接代码文件和动作失去同步的错误,这其实和winform中你双击button生成了一个事件,然后你发现你不要这个click事件你把它删除了,但是编译就不通过一个道理,C#中你需要注释掉designer(从元数据)里面button生成委托这个事件的那两句代码,而在ios里你只需要在interface builder中删除连接就可以了,我们可以在connection 查看器中进行这些操作,单击这侧叉就能结束掉这个连接,是不是可视化界面很带感呀?

今天也就写到这里,太久不写东西了,写这么点东西花了4个小时,如果您觉得太长给我留言,我会把他分成多p,然后再放,我个人感觉还是有些写的太长了,如果您觉得好,那就等待更新,如果觉得不好,也请提点建议,如果您有什么更好的资料,链接,关键字,都可以,请您留言,我将热诚的接受你们的意见,也将不断的更新我的IOS之路...

从零开始学IOS开发的更多相关文章

  1. 从零开始学 iOS 开发的15条建议

    事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...

  2. 从零开始学ios开发(三):第一个有交互的app

    感谢大家的关注,也给我一份动力,让我继续前进.有了自己的家庭有了孩子,过着上有老下有小的生活,能够挤出点时间学习真的很难,每天弄好孩子睡觉已经是晚上10点左右了,然后再弄自己的事情,一转眼很快就到12 ...

  3. 从零开始学ios开发(一):准备起航

    首先介绍一下自己的背景,本人09年研究生毕业,大学就不介绍了,反正是上海的一所211大学,学的是计算机科学与技术专业,学生时代,从事过ACM,没有什么太大的成就,中国的牛人是在太多,我的水平,估计连高 ...

  4. 从零开始学ios开发(四):IOS控件(1),Image View、Text Field、Keyboard

    长话短说,谢谢大家的关注,这篇写了好长时间,下面继续学习ios.我将用2到3篇的篇幅来学习iphone上的一些常用控件,包括Image View.Text Field.Keyboard.Slider等 ...

  5. 从零开始学ios开发(八):Autorotation and Autosizing

    不好意思,这一篇间隔的时间有点长,最近实在是事情太多,耽搁了,好了,长话短说,下面继续学习ios. 这次学习的内容是Autorotation和Autosizing,Autorotation就是屏幕内容 ...

  6. 从零开始学ios开发(七):Delegate,Action Sheet, Alert

    Action Sheet和Alert是2种特殊的控件(暂且称之为控件吧,其实不是控件真正的控件,而是ios中的2个类,这2个类定义了2种不同类型的用于和用户交互的弹出框),Action Sheet是从 ...

  7. 从零开始学ios开发(二十):Application Settings and User Defaults(下)

    在上一篇的学习中,我们知道了如何为一个App添加它的Settings设置项,在Settings设置项中我们可以添加哪些类型的控件,这些控件都是通过一个plist来进行管理的,我们只需对plist进行修 ...

  8. 从零开始学ios开发(十九):Application Settings and User Defaults(上)

    在iphone和ipad中,有一个东西大家一定很熟悉,那个东西就是Settings. 这次要学习的东西说白了很简单,就是学习如何在Settings中对一个app的某些属性进行设置,反过来,在app中更 ...

  9. 从零开始学ios开发(十七):Storyboards(上)

    在开始这章之前,先做个说明,从这篇开始,我所使用的xcode更新成了最新的版本,版本是4.6.1(4H512),如下: 大家可以打开自己电脑上的App Store,然后搜索xcode,第一个出现的就是 ...

随机推荐

  1. 编辑器Ultraedit快捷键

    编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...

  2. 各大浏览器 CSS3 和 HTML5 兼容速查表

    不知不觉中,支持 CSS3 和 HTML5 的浏览器变得越来越多,甚至包括最新版的 IE,当然,所谓支持仅仅是部分支持,因为 CSS3 和 HTML5 的W3C 规范都尚未形成.如果你现在就希望使用 ...

  3. 技术英文单词贴--M

    M mention 提到,提及,说起 merge 合并,融入 multiple 多重的,复杂的

  4. C# Winform学习--- 实现石头剪刀布的游戏

    本文使用winform实现简单的石头剪刀布的游戏,主要实现,电脑随机出拳,玩家手动点击出拳:实现简易背景图片3秒切换:简易统计信息. 1.效果图 2.实现代码 新建一个windows窗体程序,用数字1 ...

  5. Java程序设计笔记

    程序:编写Java程序,此程序从命令行接收多个数字,求和之后输出结果. 设计思想:首先在程序中设置关于参数个数的长度的公式,用.length公式读出用户所设置的参数的个数,参数默认为字符串类型,利用强 ...

  6. JAVA学习笔记(二):eclipse智能提示(转)

    存盘 Ctrl+s(肯定知道)注释代码 Ctrl+/取消注释 Ctrl+\(Eclipse3已经都合并到Ctrl+/了)代码辅助 Alt+/快速修复 Ctrl+1代码格式化 Ctrl+Shift+f整 ...

  7. asp.net程序集冲突解决笔记(未能加载文件或程序集"XXXXXXXXX")

    先来看张截图.(未能加载文件或程序集”System.Web.Razor“) 先说一下我的情况.(扯蛋的,解决方法还在下面 —> _ < ) 这是 ASP.NET MVC 的东西.老大写了一 ...

  8. DQL、DML、DDL、DCL的概念与区别

    SQL(Structure Query Language)语言是数据库的核心语言. SQL的发展是从1974年开始的,其发展过程如下:1974年-----由Boyce和Chamberlin提出,当时称 ...

  9. PD中将Comment 从Name复制值

    PD中将Comment 从Name复制值, 将以下语句考到,pd 工具栏下的执行脚本中执行下就OK了 Option Explicit ValidationMode = True Interactive ...

  10. Linux分析日志获取最多访问的前10个IP

    原文地址:http://xuqq999.blog.51cto.com/3357083/774714 apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问 ...