zoukankan      html  css  js  c++  java
  • ObjectiveC编程语言简介

    Objective-C语言被设计成一种精致的,面向对象的,用法简单的计算机语言。它是完全基于标准C语言,并且做了最小的,但是功能强大的扩展的语言。这个扩展语言借鉴了是早期的能支持面向对象的语言Smalltalk的风格。Objective-C使用一种简单易懂的方式使得C语言能够完全支持面向对象。

    大部分面向对象的开发都保护下面几个部分:

    • 一个面向对象的语言

    •  

       

      一个类库

    • 一系列的开发工具

    • 一个运行期环境

    本文档描述了开发环境的第一部分--程序语言。同时对第二部--类库--提供简单描述,Objective-C提供了编程框架--即Cocoa。关于运行期是被描述在一个单独的文档中--Objective-C Runtime Programming Guide.

    谁应该读本文档

    本文档的预期读者会对如下内容感兴趣:

    • Objective-C编程

    • Cocoa应用库的基本信息

    本文档不只是介绍Objective-C的面向对象特性,而是全面介绍这个语言本身。当然,只是专注于对C的扩展部分,而不保护C语言本身。

    由于不是描述C语言的文档,所以这里要求读者需要一定的C语言基础。由于面向对象是和C语言的面向过程非常不同,所以即使你不是C语言的专家,也不会妨碍你对本文档的理解的。

    本文档的组织结构

    下面的章节覆盖了所以对C语言的扩展。

    文章的最后有一个所有Objective-C语言和面向对象名词的解释汇总。

    约定

    本文档使用浅体字和粗体字表示不同的部分。前体表示这个部分必须使用这样的字符,不能有所有变化,粗体表示是可以自己定义的。比如,下面的代码:

    @interface ClassName CategoryName )

    表示@interface 和其他的两个部分是必须的,但是你可以选择类名和类别名。

    在例子代码中,省略号表示这有一些代码,但是没有显示出来:

    - (void)encodeWithCoder:(NSCoder *)coder
    {
        [super encodeWithCoder:coder];
        ...
    }

    参看

    如果你从来没有面向对象编程经验,请先看文章Object-Oriented Programming with Objective-C。如果你有其他语言,比如C++,JAVA等语言的面向对象开发经验,也建议你读一下这个文章,因为Objecctive-C的面向对象的语言支持和其他的语言是不同的。Object-Oriented Programming with Objective-C 为你站在Objective-C开发者的角度来熟悉面向对象编程提供帮助。他提供了面向对象的设计思路,以及如何写真正的面对对象的程序。

    运行期系统

    Objective-C Runtime Programming Guide 描述了Objective-C的运行期特性,以及你如何用它。

    Objective-C Runtime Reference 描述了Objective-C在运行期系统方面提供的结构和函数。你可以使用这些支持和运行期系统进行交互,比如你可以动态增加类,或为类增加函数,或得到加载库中所有的类的列表。

    内存管理

    Objective-C支持三种方式的内存管理机制:即在自动垃圾回收和内存计数器上的技术:

    • 自动内存计数管理 (ARC),编译器负责管理实例的生命周期。

    • 手动管理内存计数器 (MRC,有时候称MRR为“手动增加/释放”),程序员负责所有的内存管理工作。

      手动管理内存的方式描述在文章Advanced Memory Management Programming Guide中。

    • 垃圾回收,系统提供垃圾回收齐来自动管理内存管理和实例生命周期管理。 where you pass responsibility for determining the lifetime of objects to an automatic “collector.”

      垃圾回收技术描述在Garbage Collection Programming Guide中。 (本技术不能用在iOS开发中—你也不能通过iOS开发中心看到上面的这个文档)

  • 相关阅读:
    linux:安装php7.x
    linux:搭建 WordPress 个人站点
    linux:lnmp环境
    knn初了解
    Pycharm:鼠标滚动控制字体大小
    数据集的获取
    弄懂Java的自增变量
    面试中的volatile关键字
    Java的类锁、对象锁和方法锁
    Error creating bean with name 'entityManagerFactory' defined in class path resource解决方案
  • 原文地址:https://www.cnblogs.com/liangle/p/2512577.html
Copyright © 2011-2022 走看看