IOS开发---菜鸟学习之路--(一)
PS(废话):
看了那么多的博客文章,发现大部分人都一直在强调写技术博客的重要性,索性自己也耐着性子写写看吧。
写博客的重要性之类的说明,我就不做复制黏贴的工作了。因为自己没有写过多少,所也不清楚是不是真的能象他们说的那样有那么多的好处。
好了废话不多说了。直接开始正文吧
正文:
此文主要描写的内容,就是讲述一下我自己是怎么样从零开始,学习IOS 开发,然后到目前为止的一步步路程(经验的总结)吧。虽然目前还没有一个完整的客户端,但是也快要完成了。
开发环境啊什么的我就不多说了。
有能力的人。就苹果的电脑吧。没有的话就虚拟机以及黑苹果吧。
开发工具的话使用的是XCODE
语言objective-c
这些基础的准备内容。网上有很多。我这边就不做重复的讲解了。(纯粹本人懒。哈哈)
观看本文的话首先要有一定的objective-c 语法基础。起码要知道如何定义类,定义属性,定义方法等。
桔子的书还是不错的。建议大家可以去买来看下。
我这边的内容可能写出来有点误人子弟。(不过对于纯粹只是想先尝试下IOS开发的人来说应该还是可以的)
开篇基本就这么多了。(对于有objective-c基础的人而言)
没有objective-c基础的人请继续下去看。有了的话就可以点击返回期待下一篇了。
写IOS程序的话一共会包含三个文件 分别是 .h 文件 .m文件 .xib文件(老的IOS项目为.nib文件)学的比较早的人称该文件为'尼be' 文件 也就是 'nib'的发音.虽然现在是xib 但是他们还是习惯的用老的称呼.所以大家在听到 他们讲NIB文件的时候其实就是指的XIB文件
然后来讲一下三个文件的作用.
.h文件 为声明文件 (所有的声明都放在这里.如果外部需要调用该类的方法的话那么就需要在这里定义方法名)
.m文件 实际的代码编写文件
.xib文件 可视化编辑界面.直接可以在里面拖拉控件排版.
(PS:本人是做.net的主要 所以可能之后很多地方会于C#进行比较着来讲解,如果看不懂请见谅.)
#import <UIKit/UIKit.h> @interface LookInfoModelCell : UITableViewCell
{
UILabel *contentlabel;//定义属性
UILabel *typelabel;
}
@property(nonatomic,retain) IBOutlet UILabel *contentlabel;//定义属性
@property(nonatomic,retain) IBOutlet UILabel *typelabel;
@end
上面这段代码是.h内的代码
大家可以稍微了解一下..当然我这边是建议大家还是去稍微学习下objective-c内容比较好.因为我目前的阶段是 只知道 这么写.这么用的地步.
首先在类名的大括号下面定义 变量
定义的方式跟 C#一样
类型 变量名
如果是普通的BOOL INT等类型 变量名前面是不需要加 *的
如果是NSSTRING 或者其他类型的就需要在变量名前面加* 也就是
类名 *变量名
下面的
@property(nonatomic,retain) IBOutlet UILabel *contentlabel;
这边的语法呢
我具体的是什么东西已经忘了.反正目前就是按照这个格式写就对了
同样的 如果是普通的BOOL INT等类型 就不需要加retain
否则的话就需要加retain
retain这边是做内存管理用的东西
大家想深入了解的就可以去了解下
然后IBOutlet 这句的话就用是 如果有对应的.xib文件的话 同时我们在xib文件里也拖拽了一个相同类型的控件
就可以选择按住CTRL然后右键链接的方式 建立关联.
简单来讲 就用来声明是否与xib文件中的文件可以关联,如果关联的话 就要进行关联操作.
进行了关联操作之后.那么在.m文件中.对该变量进行的操作 就会直接影响xib文件中相对应的控件
有点类似于 大家写.net的时候 在windowfrom里面直接拖拉控件 然后定义了控件名,之后就可以直接在.cs文件里面操作
(xxxlabel.text="XXX")这样的感觉
而如果不加关联的话 就类似于在.CS文件中
直接
{
Label mylabel=new label();
.......;
}
在.h文件中这样声明了之后大家就可以在.m文件中进行下一步的声明了
#import "LookInfoModelCell.h" @implementation LookInfoModelCell
@synthesize contentlabel;
@synthesize typelabel;
直接
@synthesize 变量名.
这样声明了之后.大家就可以使用类似C#中的.语法来调用该类的该变量了
类似于
LookInfoModelCell.contentlabel=xxx;
以上就是属性的定义了.
如果是通过这种方式声明的话是直接可以 使用.语言来进行属性的操作的
否则的话就需要 用[类名 set属性] 的方式来操作.比较麻烦..如果有人非要用这种方式的话 ..请自己查找相关资料学习
接下来讲下方法的声明
-(IBAction)loginButtonPressed:(id)sender;
-(IBAction)backgroundTap:(id)sender duration:(NSTimeInterval)duration;
-(void)uidDidEndOnExit;
如果需要允许外部调用的就需要在.h文件中进行声明 如上.
否则的话可以直接在.m文件里面开始写方法
- 号和+号分别
加号 是可以通过类名直接调用这个方法,而减号则要实例化逸个对象,然后通过实例化的对象来调用该方法!!
然后括号内是返回类型
如果定义成IBAction的类型就是可以外部链接的
就类似我们做.NET的时候 可以在属性里面 选择对应操作会执行哪些方法一样..这个具体的之后会进行(截图)讲解
跟着返回类型的是方法名 ,再是参数
OC(objective-c的简称,之后都用OC来代替objective-c)的方法定义和C#还是有比较明显的区别的,具体的是在变量上面
C#中是
(返回类型)方法名(参数类型 变量名,参数类型 变量名 ....)
而OC则是
(返回类型) 方法名 :(参数类型)变量名 空格 参数二名 :(参数类型) 变量名 空格 参数三名 :(参数类型) 变量名
个人感觉有点奇葩.
继续正题吧.
在.h文件中声明了 方法后就要再.m文件中进行实现了
这部分的代码就和C#一样了没什么需要讲解的了
-(IBAction)backgroundTap:(id)sender
{
[pwdTextFieldresignFirstResponder];
[uidTextFieldresignFirstResponder];
}
接下来再讲下方法的调用
在C#中 调用方法是直接
类.方法名 (参数)
这样来调用的
而在oc中则是
[类 方法名: 参数 ]
类似于如下
ZYGXViewController *zygxViewController =[[ZYGXViewControlleralloc]initWithNibName:@"ZYGXViewController"bundle:nil];
该段代码的意思是
我声明了一个 ZYGXViewController类型的变量 zygxViewController
初始化方法 方法包含两个参数 initWithNibName 和bundle
另外需要注意的是 如果是调用本身的方法 需要
[self 方法名]
PS:我刚开始没记住这一点 直接[方法名] 了半天不出来.纠结了好久.然后才想起来要加 self.
开篇就讲这么多了.也是中午抽空谢谢的.
第一次写 可能有很多地方有不足的地方还请见谅
另外小弟也是IOS开发新手.如果内容上有什么错误,以及误导的地方的 还请大家见谅. 最好能留言 告诉小弟.小弟也能及时修改,免得误人子弟,实乃罪过.
下一章我会直接从登陆界面讲起. 简单的做一些基础的操作
IOS开发---菜鸟学习之路--(一)的更多相关文章
- IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路
在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...
- IOS开发---菜鸟学习之路--(二十三)-直接利用键值对的方式来处理数据的感想
首先声明,本文纯粹只是做为本人个人新手的理解.文中的想法我知道肯定有很多地方是错的. 但是这就是我作为一个新人的使用方法,对于大牛非常欢迎指导,对于喷子请绕道而行. 由于这是早上跟我学长讨论数据处理时 ...
- IOS开发---菜鸟学习之路--(十七)-利用UITableView实现个人信息界面
首先来看下我们要实现的效果 需要实现这样的效果 然后我们开始动手吧. 首先选择添加一个新的ViewController 然后打开XIB文件,添加一UITableView 并将样式设置为分组 同时将按住 ...
- IOS开发---菜鸟学习之路--(七)-自定义UITableViewCell
本篇将介绍如何自定义 UITableViewCell 首先选择新建文件 可以直接使用快捷键 COMMAND+n打开新建页面,然后选Objective-C class 然后选择继承之UITableVie ...
- IOS开发---菜鸟学习之路--(五)-MacBook购买前后感想
前几天刚入手了一台MACBOOK AIR 13寸 13版的 这几天使用过来个人感觉还是非常不错的. 这几天每天晚上都抱着她玩到十一.二点. 今天晚上突然想起来好久没续写博客了.就连忙开始码字了. 此章 ...
- IOS开发---菜鸟学习之路--(四)-登陆界面
本篇的内容其实大家 参照橘子的那本开发的书的话 上面讲解的是更详细的 一些实现. 我这边唯一的区别就是 做了网络数据的获取 以及 验证成功后 进行界面的跳转.. 第四篇了 本篇主讲登陆模块 首先先放 ...
- IOS开发---菜鸟学习之路--(二)-数据获取
第二篇了. 本篇要讲的是数据获取. 为什么将数据获取放在第二篇就讲呢? 因为我在看别人教程的时候都是先讲控件的属性,然后怎么用控件开始. 可是毕竟咱们也是有一定开发经验的人..所以很自然就想先知道怎么 ...
- IOS开发---菜鸟学习之路--(二十四)-iOS7View被导航栏遮挡问题的解决
(此文为复制帖,原文地址为:http://blog.sina.com.cn/s/blog_a8192bdd0101af40.html) self.navigationController.naviga ...
- IOS开发---菜鸟学习之路--(二十一)-利用正则表达式解析URL获取其中的参数
因为项目需要解析URL当中参数的部分,在网上搜索了一下都没有相关的资料. 然后就自己写了一个 其实我就是通过正则表达式来处理URL 进行解析的 好了直接上代码吧 也是非常的简单,大家拷贝过去就可以使用 ...
随机推荐
- Remote System Explorer Operation在eclipse后台一直跑 解决办法
在用eclipse开发时,经常遇到卡死的情况,其中一种就是右下角出现:“Remote System Explorer Operation”,解决方案如下: 第一步:Eclipse -> Pref ...
- django Q条件
#q条件from django.db.models import Qq = Q(name__startswith="p") | Q(name__startswith="l ...
- 那些年,被我蠢哭了的php代码小错误~~~
首先,我爱敲代码!!!而且我很喜欢修改bug,在看到那些bug的时候,我是兴奋的,毕竟当你解决这个bug之后感觉是很爽的. 在学习的过程中,看到无数的bug,有一些错误是很微小的,一般在PHP中都能通 ...
- pta 编程题15 列出连通集
其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; ...
- Head First HTML与CSS阅读笔记(一)
之前写过不少前端界面,但是没有完整阅读过一本HTML与CSS的书籍,都是用到什么查什么,最近闲暇之余想巩固加深一下前端基础方面的知识,阅读了<Head First HTML与CSS>,感觉 ...
- Java 使用正则表达式取出图片地址以及跳转的链接地址,来判断死链(一)
任务:通过driver的getPageSource()获取网页的源码内容,在把网页中图片链接地址和跳转的url地址进行过滤,在get每个请求,来判断是否是死链 如图: 获取网页源码中所有的href,以 ...
- UVALive 4727 Jump(约瑟夫环,递推)
分析: 如果问题是要求最后一个删除的数,重新编号为0到n-1,f[n]表示答案,那么f[n] = (f[n-1]+k)%n. 因为删掉下标k-1以后可以从下标k重新编号为0. 在这个问题只需要推出最后 ...
- 【luogu P1637 三元上升子序列】 题解
题目链接:https://www.luogu.org/problemnew/show/P1637 BIT + 离散化. 读题得数据规模需离散化.BIT开不到longint这么大的数组. 对于题目所求的 ...
- Oracle小技巧_不同表空间不同用户导入导出数据dmp
[博主注:数据库方面 ITPUB网站及博客内容非常丰富] 转载来源ITPUB 博客 经常有人会问:原来的数据在USERS表空间里面,我想把它IMP进APP表空间,我已经修改了目的用户的默认表空间, ...
- Web/Java Web项目如何模块化?没有正文,别点
事情是这样的,两三年前做了几个Java Web项目,由于薪资原因,原主程都离开了. 由于公司不规范,也没有留下正规的开发文档,只有一个源程序在手里.后面的很多系统维护都很被动. 领导就觉得说,这样不好 ...