Object - C基础篇(-)

什么是协议
是一种语法  像现实中的 劳动协议 等
规范接口  实现对象之间的通信
只是声明方法  遵守协议的类  来实现
方法有  必须实现 和不必须实现两种
常用于 代理 深浅拷贝  归档(NScoding)  规范接口
不同的类   想做相同的事情  常用协议规范他们的行为  进而达到规范接口的目的
oc没有多继承  所以用协议
比如 以后公司里 代码的封装 不同的类 常用 协议规范
arc
1.ios5之后 出现的 一种 内存自动管理机制*(还会自动检测 数据类型)
不需要 像以前一样 通过 retain 使引用计数器
+1,或者手动添加release使引用计数器减一
或者 AUtolease

不能显示调用 deleaoc

retain/copy
使用copy必须遵守NScoping协议
retain 使对象引用计数器+|
assign直接赋值 不会是对象引用计数器加减
autorelease把对象的地址 放到离他最近的 自动释放池里 延时释放
dealloc 对象的引用计数器减为0的时候 自动调用 dealloc

、、、、、、、、、、、、、
self.name =XX是一个set方法 可以KVO监听(set/kvc)内部考虑内存管理
_name只是一个简单的变量赋值,在ARC下要考虑内存 ,因为默认这是一个强引用指针

类别
升级一个类、给原有的类增加方法 2不能增加属性
3继承 父类所有的方法和属性(包括父类用类别增加的方法也能继承)
strong weak
是ARC的语法,weak 弱引用指针 weak 指向的对象 可以直接赋值,而且 一旦这个对象被销毁,weak修饰的指针置为nil
strong 是强引用指针,会使引用计数器 自动加+1

weak/asign
1都有直接赋值的意思
2weak 是修饰弱引用指针的,是ARC的语法。asign在ARC和MRC下都能用,ARC下只能修饰一些基本数据类型,MRC下也可以是修饰弱引用对象地址。

混编
在工程target设置中
arc  -fno-objc-arc
-fobjc-arc
o-c多继承
用协议代替但 本质是没有多继承的,只是可以遵守多个协议,也能有继承多个类的效果,
实现多个协议方法,进而有多继承的效果,只是类比,但没有毛线的关系。
o-c有没有私有变量,和私有方法,如果没有 怎么实现

成员变量默认是protect的 受保护的,也可以修饰成私有的provate,
但是 没有私有方法
在声明部分不声明(或者在类的匿名类别中声明) 在类的实现部分 实现,实现私有的效果,但是本质是没有私有方法的,因为可以用选择器进行访问,这就是o-c的动态机制,根本没有真正的私有

#include#[email protected]
#import不用添加条件编译#include必须要条件编译 防止头文件多次被包含导致重复定义
@class前向引用申明,目的是防止,相互包含,告诉编译器,我后面会声明,现在这里定义一下,请放行。

只copy 对象引用  ()归档时深拷贝

MVC 框架设计模式好几十了,现在c层过重,降低了编辑效率,所有有一种编辑叫 MVVM

是对象独立化  代码复用 增强健壮性 降低软件成本
观察者模式
通知,KVO

时间: 2024-12-15 09:03:14

Object - C基础篇(-)的相关文章

一步步学习javascript基础篇(3):Object、Function等引用类型

我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂数据类型(即引用数据类型) Object类型 我们用的最多的引用类型就属object类型了,一般用来存储和传输数据是再好不过的.然,它的两种创建方式我们是否了解呢? 1.通过构造函数来创建 如: var obj = new Object(); 在js中的引用类型有个非常灵活的用法,可以动态的附加属性和赋值.

Hybrid APP基础篇(四)-&gt;JSBridge的原理

说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:JS如何调用Native 第三步:Native如何得知api被调用 第四步:分析url-参数和回调的格式 第五步:Native如何调用JS 第六步:H5中api方法的注册以及格式 进一步完善JSBridge方案 思路 实现 注意 完整的JSBridge 完整调用流程图 另外实现:不采用url sche

DOM系列---基础篇

DOM (Document Object Model) 即文档对象模型, 针对 HTML 和 XML 文档的 API (应用程序接口) .DOM 描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM 产生于 网景公司及微软公司创始的 DHTML(动态 HTML) ,但现在它已经成为表现和操作页面标记的真正跨平台.语言中立的方式. DOM 中的三个字母: D(文档)可以理解为整个 Web 加载的网页文档: O(对象)可以理解为类似 window 对象之类的东西,可以调用属性

Python之路【第十六篇】:Django【基础篇】

Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver

java基础篇---I/O技术(三)

接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream).使用对象输出流输出序列化对象的步骤,有时也成序列化,而使用对象输入流读入对象的过程,有时也称为反序列化 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 对象序列化就是把一个对象变成二进制的数据流的一个方法,通过对象序列化可以反驳的

Javascript基础篇小结

Javascript基础篇小结 字数9973 阅读3975 评论7 喜欢28 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript操作DOM的本质是=获取+触发+改变 目的:就是用来操作内存中的DOM节点 修改D

VBS基础篇 - 对象(6) - Folder对象

VBS基础篇 - 对象(6) - Folder对象 描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的Getfolder方法获取文件的句柄 1.使用 CreateObject 方法来创建 FileSystemObject 对象 2.使用Getfolder方法获取文件夹的句柄 3.在创建的Folder对象上使用适当的方法 4.访问对象的属性 方法:(仅常用的方法) Folder对象的方法与File对象的方法

面试准备&amp;总结-Java基础篇

在vps的服务器到期了,在hw又不能访问,直接在博客园写笔记了.  基础篇 1. 集合类的继承关系,源码实现原理,初始大小和如何增长. - list类初始大小10,加载因子为1,扩容到1.5+1.底层是个Object数组,调用 System.arraycopy进行拷贝. - Vector同上,扩容倍数是两倍,是同步的,线程安全. - HashMap初始大小16,加载因子0.75f,扩容到2倍.底层是数组+链表,调用resize()调整位置. - HashTable初始大小11,加载因子0.75f

puppet基础篇(练习篇)

puppet基础篇(练习篇) 本文分为两部分:一.安装配置及命令用法:二.puppet资源基础练习 1.安装配置及命令用法 #在epel仓库安装 yum install ./facter-2.4.6-1.el7.x86_64.rpm  ./puppet-3.8.7-1.el7.noarch.rpm  [[email protected] puppet]# puppet helpUsage: puppet <subcommand> [options] <action> [option