一:面向对象的思想
  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. VIM复制粘贴大全!

    原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...

  2. PC/UVa 题号: 110101/100 The 3n+1 problem (3n+1 问题)

     The 3n + 1 problem  Background Problems in Computer Science are often classified as belonging to a ...

  3. c3p0详细配置

    c3p0详细配置 官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config> <default-conf ...

  4. quartz 2.2.1 jdbc 连接池参数配置

    /** The JDBC database driver. */指定连接驱动 public static final String DB_DRIVER = "driver"; /* ...

  5. 怎样在osg中动态的设置drawable的最近最远裁剪面

    // draw callback that will tweak the far clipping plane just    // before rendering a drawable.    s ...

  6. Linux - 打印文件夹全部文件 代码(C)

    列出文件夹全部文件 代码(C) 本文地址:http://blog.csdn.net/caroline_wendy 首先配置环境,參考:http://blog.csdn.net/caroline_wen ...

  7. Android版本号的识别——$(PLATFORM_VERSION)

    #/******************************************************************************#*@file Android.mk#* ...

  8. Swift 3.0 使用Core Data

    swift版本:3.0 Xcode版本:8.0 iOS版本:10.0 自iOS10 和swift3.0 之后,苹果的访问CoreData的方法发生了很大改变,简洁了许多,下面的内容是从0开始建立一个e ...

  9. oc-03-OC访问OC源文件、C源文件中的函数

    show.h #ifndef __OCDay01__Show__ #define __OCDay01__Show__ #include <stdio.h> extern void test ...

  10. 【Java Tips】boolean的类型与string类型的转换

    boolean类型转化为string boolean b = true; String s = String.valueOf(b); System.out.println(s);