zoukankan      html  css  js  c++  java
  • 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开发新手.如果内容上有什么错误,以及误导的地方的 还请大家见谅. 最好能留言 告诉小弟.小弟也能及时修改,免得误人子弟,实乃罪过.

    下一章我会直接从登陆界面讲起. 简单的做一些基础的操作

  • 相关阅读:
    SQL 取日期
    myeclipse 8.5 安装jbpm3.2开发插件
    持续感悟
    程序员应该读的书与经常上的网站
    java连接ms sql server各类问题解析
    怎么实现Redis的高可用?(主从、哨兵、集群)
    Web系统突然爆”Asp.net ajax客户端框架未能加载“的一种可能原因(误改服务器系统时间)
    【转】Skyline软件介绍
    ArcSDE启动遇到ORA12560: TNS: 协议适配器错误解决办法
    开放源代码GIS资源集锦
  • 原文地址:https://www.cnblogs.com/PleaseInputEnglish/p/IOS.html
Copyright © 2011-2022 走看看