从今天开始开一个坑,由于业务变动,要开始学习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之路...