从今天开始开一个坑,由于业务变动,要开始学习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. Iterator(迭代器)-对象行为型模式

    1.意图 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示. 2.别名 Cursor-游标. 3.动机 一个聚合对象,应该提供一种方法来让别人可以访问它的元素,而又不需暴露它的 ...

  2. linux 账号管理与ACL权限设定

    此文涉及命令:useradd.usermod.userdel.passwd.chage.setfacl.getfacl.su.sudo.fingr.chfn.chsh.id.groupadd.grou ...

  3. flask文件的上传和下载

    from werkzeug.utils import secure_filename from flask import Flask,render_template,jsonify,request i ...

  4. UITextField常用属性归纳:文本框样式、文字样式、键盘样式、左右视图样式、清除按钮设置等

    (1)可以根据需要设置文本框的样式(包括形状.边框颜色.背景等). (2)可以根据需要设置文字显示样式(包括输入密码时的密文显示.文字横向居中.纵向居中上下.输入的文字是否首席木大写.文字超过后是否缩 ...

  5. Global.asax 文件是什么

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  6. Android 遮罩层效果

    (用别人的代码进行分析) 不知道在开发中有没有经常使用到这种效果,所谓的遮罩层就是给一张图片不是我们想要的形状,这个时候我们就可以使用遮罩效果把这个图片变成我们想要的形状,一般使用最多就是圆形的效果, ...

  7. PHP array_multisort—对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  8. POJ 3041 Asteroids 二分图匹配

    以行列为点建图,每个点(x,y) 对应一条边连接x,y.二分图的最小点覆盖=最大匹配 //#pragma comment(linker, "/STACK:1024000000,1024000 ...

  9. python学习之路-day12-mysql && orm

    一.数据库 1.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...

  10. SQL Server 集合处理

    UNION ALL 返回两个结果集中所有的行,返回结果集中会存在重复行 UNION 返回两个结果集中去重的行,返回结果集中无重复行 INTERSECT 返回两个结果集都有的行,返回结果集中无重复行 E ...