之前已经折腾过用Xcode开发OS X的程序了,现在继续折腾,用iOS SDK开发移动设备(iphone/ipad/ipod touch)的程序。

1.从iOS Developer Library中找到了Start Developing iOS Apps Today,所以就跟着教程去试试。

2.从教程中才知道,原来移动设备,是包括这三个:iPad, iPhone, and iPod touch

教程中也说了,会涉及到Xcode+iOS SDK,Objective-C,Cocoa Touch Framework,如何建一个iOS的app并且在设备上测试,以及如何提交app到App Store。

另外,关于是否需要注册成为Apple开发者:

写app和在模拟器上测app,是不需要的;但是想要在设备上测app和发布app则是需要的。

3.安装教程提示,去Your First iOS App学习学习。

创建新项目,选择Single View Application:

其中,另外几个Template,教程解释道:

Master-Detail创建出来的程序就像Mail;

Tabbed创建出来的就像iTunes;

然后设置项目名字和配置:

然后选择一个地方存放你的项目,以及对于那个source repository不要选,然后就打开了项目了:

汗,好像写错项目名了,写成HelloWord了。。。

无所谓,继续。

暂时不需要Utility Area,所以去关闭该窗口:

然后点击Run,就可以看到iPhone模拟器出现了:

然后验证可以运行了,先退出iOS模拟器:

当前的Supporting Files中的main.m为:

相应的info list文件为:

storyboard为:

然后再打开Utility->Attributes inspector:

按照教程去看,差点没看懂,差点没找到找到如何打开background配置界面的。

后来还是自己摸索出来的,先点击View Controller下面的View,然后右边的Attribute inspector自动就打开了配置界面了:

然后才看懂教程,原来最开始是要选择View的。。

然后就可以点击Background的那个白色长方形,在弹出的颜色设置中,设置自己所要的背景色了:

然后运行看看效果:

然后按照教程,在恢复回白色:

然后再运行一下,看看效果,顺带同时保持了你当前的设置。

然后接着去添加Text Field:

拖动放到View中,然后再通过View Controller->View->Text Field选中后,用鼠标拖动至合适的位置,比如:

再在placeholder中输入名字,再去设置对齐:

然后再把Label:

按照同样方法添加到View中:

再添加button:

然后命名为Hello:

然后去配置好Text Field:

然后运行试试效果。

点击按钮,是可以高亮的:

点击到Text Field可以调出键盘:

如教程所说,暂时没实现功能呢,所以暂时无法关闭键盘。

然后再按照教程,确保当前选中的是MainStoryboard.storyboard 然后,此时是可以看到对应的界面的,然后我这里右边会显示出CRLViewControl.h文件,而不是.m文件,而直接点击左边的CRLViewControl.m文件的话,此时Hello的界面没了,会变成CRLViewControl.m的内容,所以不是所想要的。

后来经过折腾发现,原来是在右边,显示了CRLViewControl.h的上面,点击图标,可以看到,有CRLViewControl.h和CRLViewControl.m两个,选择CRLViewControl.m:

即可出现对应的.m的内容,此时就可以继续操作了:

然后配置好connection:

然后点击Connet,然后会看到一个灰色的小圆点,移动上去,会看到Hello按钮显示出提示:

继续去添加Outlet:

然后填入参数,配置好:

教程提到了,现在编译器会自己给accessor methods做synthesize,所以不用再加@synthesize了。

同样的,也去给label建立关联:

然后打开Utility,关闭Assistant,点击到Connections inspector,就可以看到各个连接关系了。

鼠标移动上去,就可以显示出来关系:

其实,就类似于VS 2010中,建立控件,比如label时,你所设置label的名字,而mac却把这label空间本身和其源文件.m中的变量,割裂开来,然后另外再手动建立两者的联系罢了。

再去设置Text Field的delegate:

不过话说,目前为止,好像还是不是很清楚这个delegate的作用。。。

选择Outlets中的delegate后,变为:

教程也说了,其实这些内容,都是可以手动去写代码的,只是让Xcode帮你自动生成,会减少你的代码输入量而已。

(也减少可能的由于笔误而造成的错误)

去Run了下,结果和之前一样,点击按钮会高亮,点击text field会调出键盘输入。

接着就是写代码了。

在CRLViewController.h添加了property

在CRLViewController.m中去实现对应的changeGreeting。

抄写代码过程中还觉得很奇怪,为何不直接使用textField.text而还要新建一个NSString来存放字符串。

看了后面教程的解释,才知道,原来是Mac中的model object决定的:

app的数据,是不应该让UI部分的东西来存放的,即此处app的将要显示的text内容,应该自己建一个NSString来保存,而不应该用textField的text部分来保存其要处理(要显示)的数据。

然后继续按照提示,添加delegate代码,最后Run成功如下:

至此,终于完成第一个iOS的app了。

虽然不是全懂,但是大概明白流程了。

from :http://www.crifan.com/develop_application_for_iphone_using_ios_sdk_xcode/

【转】使用Xcode中的iOS SDK给iphone开发出第一个App程序的更多相关文章

  1. 【转】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

    iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具. 其功能是,帮你模拟iOS平台设备,在模拟器上运行对应的程序,以方便你没有实体设 ...

  2. iOS:iPad和iPhone开发的异同(UIPopoverController、UISplitViewController)

    iPad和iPhone开发的异同 1.iPhone和iPad: niPhone是手机,iPad.iPad Mini是平板电脑 iPhone和iPad开发的区别 屏幕的尺寸 \分辨率 UI元素的排布 \ ...

  3. IOS开发——01_第一个OC程序

    本文目录 一.新建Xcode项目 二.运行项目 注:建议先学习C语言, 如果你还没有编程经验,看不懂的地方可以在评论区提出,本文使用的为Xcode6.1版本,与之前版本会有所差异,但总体不变. 另:还 ...

  4. Xcode中的iOS工程模板

    1. Application类型 我们大部分的开发工作都是从使用Application类型模板创建iOS程序开始的.该类型共包含7个模板,具体如下所示. Master-Detail Applicati ...

  5. Xcode 中的IOS工程模板

    1.IOS模板主要分为: Application .Framework.Other application 分为:Master-Detail Application 可以构建树形导航模式引用,生成的代 ...

  6. Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

    http://www.crifan.com/intro_ios_simulator_in_xcode_and_usage_summary/

  7. Xcode中编译iOS程序,运行出错:Thread 1: signal SIGABRT

    添加一个全局Exception Breakpoint 就检测出来了  导航栏里面 Debug 菜单里面

  8. 【学习总结】OS X , IOS , IOS SDK , XCode之间的关系

    几个基本的概念 : OS X : 属于桌面PC级别(IMac,MacPro等)对应安装的操作系统 IOS : 属于移动设备级别(Iphone,Ipad等)对应安装的操作系统 XCode: 是一个IDE ...

  9. iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变

    iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变   看了下还算能理解!!!有兴趣可以看看哈!!!不喜勿喷!!后面的对于废除的方法什么有用感觉!!!   ...

随机推荐

  1. UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?

    选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...

  2. ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学

    ECC ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制.在软件注册保护方面起到很大的作用,一般的序列 ...

  3. Effective C++ -----条款23:宁以non-member、non-friend替换member函数

    宁可拿non-member non-friend函数替换member函数.这样做可以增加封装性.包裹弹性(packaging flexibility)和机能扩充性.

  4. hdu1010 dfs+奇偶性减枝

    Tempter of the Bone Problem Description The doggie found a bone in an ancient maze, which fascinated ...

  5. 利用Gson和SharePreference存储结构化数据

    问题的导入 Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username.profile_pic.access_token等等之类的数据,这些数据可以 ...

  6. iOS-动画效果(首尾式动画,代码快动画,核心动画,序列帧动画)

    一.各个动画的优缺点 1.首尾动画:如果只是修改空间的属性,使用首尾动画比较方便,如果在动画结束后做后续处理,就不是那么方面了. 2.核心动画:有点在于对后续的处理方便. 3.块动画: (1)在实际的 ...

  7. 小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(三)Activity Indicators视图 学习笔记

    当我们应用程序执行一个比较耗时的操作,我们需要给用户一个提示,那么这个提示比较好的方式方法呢就是  进度条  或者  一个齿轮转.我们就需要Activity Indicators组件 Indicato ...

  8. 初试Celery

    从@到celery 一.文档: 官网:http://www.celeryproject.org/ Celery3.1 ------------2016-7-19 18:26:55-- source:[ ...

  9. UILabel自适应高、宽

    根据Label和字体大小自适应高度 - (CGFloat)getHeightWithLabel:(UILabel *)label andFontSize:(CGFloat)size { label.n ...

  10. Educational Codeforces Round 8

    开始填坑_(:з」∠)_ 628A - Tennis Tournament    20171124 小学数学题,\((x,y)=((n-1)\cdot(2b+1),np)\) #include< ...