objective-C基本知识
预编译指令
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基本知识的更多相关文章
- [置顶] IOS 基础入门教程
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- 刨根问底Objective-C Runtime
http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and- ...
- iOS/OS X线程安全的基础知识
处理多并发和可重入性问题,是每个库发展过程中面临的比较困难的挑战之一.在Parse平台上,我们尽最大的努力保证你在使用我的SDKs时所做的操作都是线程安全的,保证不会出现性能问题. 在这篇文章中我们将 ...
- [转]一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- C语言程序设计做题笔记之C语言基础知识(上)
C语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行事.并且C是相当灵活的,用于执行计算机程序能完成的几乎 ...
- GCC基本知识
掌握下面的对GCC会有一个比较清晰的大致的了解: 不经意间,GCC已发展到了4.3的版本,尽管在软件开发社区之外乏人闻问,但因为GCC在几乎所有开源软件和自由软件中都会用到,因此它的编译性能的涨落会直 ...
- Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)
Qt/C++开发人员眼中的Obj-C 对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...
随机推荐
- Nginx+Keepalived主主负载均衡服务器
Nginx+keepalived主主负载均衡服务器测试实验环境: 主Nginx之一:192.168.11.27主Nginx之二:192.168.11.28Web服务器一:192.168.11.37We ...
- Play framework(二)
Play 2.0 的完整演示过程记录 http://www.oschina.net/translate/playframework-20-live-coding-script todolist代码
- (转)C# 解析 json
原文: http://www.cnblogs.com/txw1958/archive/2012/08/01/csharp-json.html JSON(全称为JavaScript Object N ...
- 菜鸟-手把手教你把Acegi应用到实际项目中(2)
上一篇是基于BasicProcessingFilter的基本认证,这篇我们改用AuthenticationProcessingFilter基于表单的认证方式. 1.authenticationProc ...
- Android——开发环境
sdk manager——>Tools 开发的工具类 sdk manager——>Extras——>Android support Library 支持高版本应用向低版本兼容 sdk ...
- HDFS Java API 常用操作
package com.luogankun.hadoop.hdfs.api; import java.io.BufferedInputStream; import java.io.File; impo ...
- 初探appium之元素定位(1)
无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...
- HDU2063_过山车_C++
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2063 又是一道二分图匹配的裸题,直接上匈牙利算法 注意一点它末尾的0结束,是标志着有多组数据……坑…… # ...
- C++静态代码分析工具推荐——PVS-Studio
长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...
- matlab 椭圆方程拟合
拟合椭圆首先要知道各个点的坐标,然和带入如下公式: x = [59 136 58 137 57 137 56 137 55 138 54 139 53 140 52 141 51 142 51 143 ...