预编译指令

1.自己写的头文件最好用双引号,而系统自带的可以用尖括号。

*************************************************

点语法

p.age= 10;

1.不是访问age成员变量,而是调用其方法

2.其他的很多编程语言都有点语法,为了其他编程的程序员可以快速掌握oc,从而添加了点语法

3.编译器在遇到点语法的时候,会自动将之转化为:[p setAge:10];

4.故点语法的本质还是调用方法,而不是访问成员变量(访问成员变量就一种:通过箭头)。

*******************************************

isa指针

在OC中,对于每个实例对象,其中都会有一个isa指针,isa= is a,同一个类创建出来的对象的isa指针是一样的。

它的作用是告诉对象它是哪个类以及它的父类是谁。

这个指针只有在程序运行的时候才看得见(在调试模式的具体对象处能够找到)。

*******************************************

import和include的区别:

  import关键字会对重复引用的文件进行自动省略,而include不会。所以,import能够避免碰到“常见但定位麻烦的重复引用头文件错误”。

  在OC中,我们一般使用import来引用其他头文件。

**********************************

关键字

“@”符号:在OC中表示关键字。

@interface:类声明的开始。

@implementation:类实现的开始。

@end:类声明或者类实现的结束。

夹在@interface和@end之间的即为类的声明,而夹在@implementation和@end之间的即为类的实现。

**************************

在OC中,self表示对象自己,它和C++中的this含义相近。super表示父类对象。

************************

继承和重写

类库之间的继承:

cocoa的框架中,大部分的类库都是继承自NSObject,而类库之间还存在各种各样的父子关系,比如所有的控件类(UIControl、NSControl)都是继承自响应者类(UIResponder、NSResponder);所有的多功能视图(tableview/scrollview/webview等)都是继承自视图类(UIView、NSView)等。如果我们想找类库的继承关系,我们可以在开发文档中找到。

************************

分类(Category)

************************

协议(Protocols)和代理(Delegation)

1.代理的引入真正意义上完全实现MVC的程序结构框架。

2.协议是对类的实现进行规约的一套标准,可以保证多个承诺实现协议的类的接口一致性。

objective-C基本知识的更多相关文章

  1. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  2. Automake

    Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...

  3. 一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  4. 刨根问底Objective-C Runtime

    http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and- ...

  5. iOS/OS X线程安全的基础知识

    处理多并发和可重入性问题,是每个库发展过程中面临的比较困难的挑战之一.在Parse平台上,我们尽最大的努力保证你在使用我的SDKs时所做的操作都是线程安全的,保证不会出现性能问题. 在这篇文章中我们将 ...

  6. [转]一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  7. C语言程序设计做题笔记之C语言基础知识(下)

    C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...

  8. C语言程序设计做题笔记之C语言基础知识(上)

    C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...

  9. GCC基本知识

    掌握下面的对GCC会有一个比较清晰的大致的了解: 不经意间,GCC已发展到了4.3的版本,尽管在软件开发社区之外乏人闻问,但因为GCC在几乎所有开源软件和自由软件中都会用到,因此它的编译性能的涨落会直 ...

  10. Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)

    Qt/C++开发人员眼中的Obj-C      对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...

随机推荐

  1. 01- 使用brew 安装ant -学习笔记(一)

    1.卸载Mac OS下brew工具:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/mast ...

  2. CentOS 安装 Chrome

    cd  /etc/yum.repos.d/ vi  google.repo [gogle] name=Google-x86_64 baseurl=http://dl.google.com/linux/ ...

  3. [ActionScript 3.0] AS3 深入理解Flash的安全沙箱Security Domains

    简介 如果你还没有与复杂的的安全域(security domain)和应用程序域(application domain)问题打过交道,那么你真是个幸运的家伙.当你在加载外部内容(然后他们开始播放)的时 ...

  4. java中读取文件以及向文件中追加数据的总结

    package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...

  5. python中的enumerate函数

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a1 b2 c ...

  6. ios7 Cocos2dx 隐藏状态栏设置

    环境: cocos2d-x 2.1.5 ios7.0     在info.plist 添加 UIViewControllerBasedStatusBarAppearance(View controll ...

  7. python3 split( ) not enough values to unpack(expceted 2, got 1)

    在运行一个小脚本时,脚本从一文本文件读取数据,事实上这个文件只有一行'count:2',并取到这个2,将其转成数字.但运行,总是报错. 代码如下: with open('count.txt', 'r' ...

  8. php分享表单提交到本页的实例

    我们在做表单提交时,一般都要设置表单的action属性,改属性用于指定表单提交到服务器上的哪个页面进行处理,但为空时,表示提交到本页进行处理,即提交给自己.本文章向大家分享表单提交给本页的实例. 实例 ...

  9. php 分析Session无效的原因

    Session在开发中是非常重要的一个数据存储变量了,它可以实现不同页面之间的传值了,下面我们来为各位介绍在使用Session时碰到过期无效的一些问题吧. PHP开发过程中,可能有朋友经常会遇到Ses ...

  10. 组合vs继承

    继承,建立子类. 组合(或聚集),在类定义中引用其它类的实例.