一:面向对象的思想
  objective-c与C语言的编程思想不同,C语言是面向过程的编程,而objective-c则是面向对象的编程,所谓面向对象,我个人的理解,就是抽象、将具有一定共同点的实物抽象成一个个类,对其进行封装,继承,对实物本身进行操作。
 
二:Objective-C的历史
        objective-c是以SmallTalk为基础,建立在C语言之上,并兼容c与c++的一门编程语言。20世纪80年代早期由 Brad J.Cox设计,2007年苹果公司发布了objective-c 2.0,并在iPhone上开始使用objective-c进行开发。
 
三:Objective-C框架
         Objective-c编程中主要用到的框架是Cocoa,它是MacOS X中五大API之一,它由两个不同的框架组成FoundationKit 和ApplicationKit。Foundation是最基本的框架,其中有很多经常用到的、面向数据的低级类和数据类型,如NSString,NSArray,NSDictionary和NSNumber。而iphone手机应用开发  则还会用到UIKitk框架,这会在以后介绍到。
四:Objective-C扩展名
      OC是C和SmallTalk的结合,它支持相同的C语言基本语法。与C一样,文件分为头文件和源文件,扩展名分别为.h和.m。                                   
            .h  头文件    头文件包涵类的定义、类型、函数以及常量的声明等;
            .m  源文件    这个典型的扩展名用来定义源文件,可以同时包含C和Objective-C的代码。
五:头文件引入 #import
  在Objective-C里,包含头文件有比#include更好的方法  #import。它的使用和#include相同,但是可以保证你的程序只包含相同的头文件一次。
例如  引入UIKit框架
#import <UIKit/UIKit.h> 
 
 
六:标准输出函数  NSLog()
      在Objective-C中用的打印函数是NSLog(), 当然也可以用printf(),但是NSLog()提供了一些特性,如时间戳,日期戳和自动加换行符等,用起来更方便,所以NSLog()用起来会更加的方便。例如:
NSLog(@"Hello world");
 
 七:类方法,实例方法
       Objective-c 的方法定义包含了方法类型,返回类型,一个或者多个关键词,参数类型和参数名。而且Objective-c中方法有两种类型:实例方法,类方法。实例方法前用“-”号表明,类方法用“+”表明,实例方法需要用类的实例对象调用,类方法则只能由类名调用  下面是类方法和实例方法的举例:
 
-(void)setCC:(NSString*)c;  //实例方法
+(void)setCC:(NSString*)c;//类方法
 
 
八.变量的属性
      变量的属性提供了比方法更方便的访问方式。通过@property标识符来替代getter和setter方法。使用方法就是在类接口.h文件中用@property标识符,后面跟着变量的属性,包括 copy, tetain, assign ,readonly , readwrite,nonatomic,然后是变量名   然后在实现文件.m中使用@synthesize 加变量名实现   格式如下
声明property的语法为:
      @property (属性1,属性2) 类型 名字;
//.h
@property BOOL flag;
@property (nonatomic) NSString* name;
//.m
@synthesize flag,name;
各参数意义如下:
readwrite    产生setter\getter方法
readonly     只产生简单的getter,没有setter。
assign         默认类型,setter方法直接赋值,而不进行retain操作
retain         setter方法对参数进行release旧值,再retain新值。
copy           setter方法进行Copy操作,与retain一样
nonatomic      禁止多线程,变量保护,提高性能
属性的另一个好处就是,可以使用点"."语法来访问            
 
九:对象初始化
     OC对象的初始化有两种方法:一种是[类名 new], 第二种是[[类名 alloc]init]。这两种方法是等价的,不过,通常的Cocoa惯例是使用alloc和init,而不使用new.一般情况下,Cocoa程序员只是在他们不具备足够的水平来熟练使用alloc和init方法时,才将new作为辅助方法使用。
         [[类名alloc]init]有两个动作。alloc是分配内存,是从操作系统获得一块内存并将其指定为存放对象的实例变量的位置。同时,alloc方法还将这块内存区域全部初始化为0。与分配动作对应的是初始化。
    自定义初始化方法   格式如下:
-(id)init
{
if(self = [super init]){
// …
//code there
}
  return self;
}

使用self= [super init]的作用是使父类完成它们自己的初始化工作。这在以后会介绍。

十:选择器selector
    选择器只是一个方法名称,它以OC运行时使用的特殊方式编码,以快速执行查询。你可以使用@selector()预编译指令指定选择器,其中方法名位于圆括号中。如一个类中setCC:方法的选择器是:@selector(setCC:)。待续...
  
 
 
 
            
 
                    
 
 

ios开发入门篇(二):Objective-C的简单语法介绍的更多相关文章

  1. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  2. ios开发入门篇(一):创建工程

    突然心血来潮,想写点技术方面的东西,做了ios也有好几年了,就简单的写个ios开发的技术博客,希望有人能用得到. 今天就先从创建一个Hellow World工程开始 一:首先打开xcode然后单击Cr ...

  3. ios开发入门篇(四):UIWebView结合UISearchBar的简单用法

     UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一: ...

  4. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证]

    二.使用Azure AD进行身份验证 之所以将Azure AD 作为开始,是应为基本上我们所有应用都需要进行安全管理.Azure Active Directory (Azure AD) 通过以下方式简 ...

  5. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证-2.2身份验证开发]

    2.2身份验证开发 在我们的案例中,我们是用户通过Web应用程序进行身份识别. 上面的图示说明了如下的一些概念 l Azure AD 是标识提供程序,负责对组织的目录中存在的用户和应用程序的标识进行验 ...

  6. iOS开发——高级篇——二维码的生产和读取

    一.二维码的生成 从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码 二维码 ...

  7. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...

  8. ios开发入门篇(三):UITableView简介

    最近做项目又开始用到了uitableview,温习之余,在这里把uitableview的用法分享一下,有不对的地方欢迎大家提出来. 废话不多说,先创建一个工程,由于Xcode6,去除了创建工程时的空项 ...

  9. 无责任Windows Azure SDK .NET开发入门篇二[使用Azure AD 进行身份验证--2.1使用Azure AD需要了解几个概念]

    2.1使用Azure AD需要了解几个概念 l Azure AD目录 当你注册 Microsoft 云服务时,便会获得一个 Azure AD 目录.你可根据需要创建更多的目录.例如,可以将第一个目录保 ...

随机推荐

  1. vector 与map的下标操作

    1.vector的下标操作不会添加元素,只能针对已经存在的元素操作. 2.map的下标操作具有副作用,key不存在,会在map中添加一个具有该key的新元素,新元素的value使用默认构造方法. 3. ...

  2. ORACLE中CONSTRAINT的四对属性

    ORACLE中CONSTRAINT的四对属性 summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,怎样利用约束本身的属性来处理这些问题呢?本文具 ...

  3. sql操作事务SqlTransHelper类实现

    具体实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  4. yii中阻止 SHOW CREATE TABLE and SHOW COLUMNS 每次执行

    Disable SHOW CREATE TABLE and SHOW COLUMNS in Yii为啥会显示:SHOW CREATE TABLE and SHOW COLUMNS 答案:This is ...

  5. Arrays.sort(new String[]{"aaa"}); 排序方法

    private static void mergeSort(Object[] src, Object[] dest, int low, int high, int off) { int length ...

  6. 关于Linux的10个核心面试问题与答案

    转载:http://www.linuxeden.com/html/news/20140222/148676.html 又到了以轻松的心情来读些严肃内容的时刻了,哈!这是另一篇关于面试问题的文章,我们将 ...

  7. 小白日记39:kali渗透测试之Web渗透-SQL手工注入(一)-检测方法

    SQL手工注入(一) SQL注入:通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.[SQL注入原理] ##服务端程序将用户输入参数作为查询 ...

  8. 小白日记18:kali渗透测试之缓冲区溢出实例(二)--Linux,穿越火线1.9.0

    Linux系统下穿越火线-缓冲区溢出 原理:crossfire 1.9.0 版本接受入站 socket 连接时存在缓冲区溢出漏洞. 工具: 调试工具:edb: ###python在漏洞溢出方面的渗透测 ...

  9. Maven学习小结(四 聚合与继承)

    1.聚合 一次构建多个项目模块. 2.继承 为了消除重复,把很多相同的配置提取出来,例如groupid和version: 2.1 Maven中可以继承的POM元素 groupId :项目组 ID ,项 ...

  10. struts2简单示例

    今天写一个struts2的例子,目的是为了让大家明白struts2的基本流程,其实框架没有大家想象的那么难,说白了struts2的本质就是一个大的Servlet,即原本需要提交到Servlet处理的部 ...