OC中的指针

  NSError  *err = nil;
    NSError __strong **error = &err;

    //因为在oc中,通过* *err 创建的指针是用__strong修改的,所以要一致,NSError __strong(需要在前面加上) **error
    NSError  __autoreleasing *errO = nil;
    NSError __autoreleasing * *errorO = &errO;

    //因为在oc中,通过 *err 创建的指针是用__autoreleasing修饰的,所以要一致,NSError __strong(需要在前面加上) **error,  NSError  __autoreleasing *errO

    [NSArray array];   //如果是这样的话,会放在自动释放池里进行管理
    [NSArray alloc];   //如果通过alloc创建的,用strong修饰的,会自己去管理它的内存.
时间: 2024-10-25 05:27:31

OC中的指针的相关文章

智能指针 与 oc中的指针

智能指针 与 oc中的指针 智能指针的原理及实现 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝:另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享. 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count).智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针. 每次创建类的新对象时,初始化指针并将引用计数置为1:当对象作为另一对象的副

oc中的指针(一)

谈到c语言,不得不提指针,有多少英雄好汉栽在指真上.利用指计可以很方便的使用数组和字符串(C#中的String类型就是引用类型,也就是指针类型).指针支持动态分配内存,可以让程序更简介,提高效率. "要想精确打击,就要人工引导"---军旅剧中导弹兵经常会这样说,指针类似于人工引导的坐标.灵活,易用,同时也很复杂,引导错误就是毁灭性的打击.举个栗子:移动大厦一层有10个方间,编号依次是1-10.其中2号给A公司租用,5-8给公司租用.以每个房间的编号第一个为公司的地址.如果我们要给A公司

OC中的野指针(僵尸指针)

涉及到内存管理问题的都是类类型的变量,而在OC中我们操纵这些对象都是通过操纵指向他们的指针来完成的,一致很多时候会忽略指针存在.比如定义UIView * view = [[UIView alloc]init];然后我们会使用view这个指针来做许多的操作.而由指针带来的一个性质是,当view == nil的时候,是指view这个指针没有指向任何地方,不能代表view指向地方的值是空的.同样当view不为nil的时候,值说明它指向了一个地方,而不能说明它指向的地方有值.僵尸指针就是这样情况,比如:

关于void*类型的用法(相当于OC中的id类型)

关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指针,而且可以从void* 强制转换为任何其他数据类型的指针,所以使用起来有时候会比较危险.如果开始将一个void*的指针间接引用一个float*的指针,然后将这个void*指针强制转化为一个int*类型的指针,编译器不会给出错误甚至警告,但是输出的数据却匪夷所思,如果再强制转换会float*则不会出

OC中self的用法

self :用法 OC中self可代表类和对象 Self是一个指针,谁调用了当前方法,self就指向谁 [出现在对象方法中,就代表着当前对象,出现在类方法中,就代表着当前类] Self的用途: (1)可以利用self->成员变量名访问当前对象内部的成员变量(仅在对象方法中) (2)[self 方法名]:可以调用其他的对象方法或者是类方法

【《Objective-C基础教程 》笔记ch05】(六)OC中的复合机制Composition

 1.复合通过包含作为实例变量的的对象指针实现的.        @interface Unicycle : NSObject        {           Pedal*pedal;           Tire*tire;         }//Pedal和tire通过复合的方式组成了Unicycle 2.存取方法--用来读取或者改变某个对象属性的方法. #import <Foundation/Foundation.h> @interface Car : NSObject { Eng

【《Objective-C基础教程 》笔记ch04】(五)OC中的继承inheritance机制

一.为什么需要继承 使用继承一方面继承了父类的特性,另一方便解决了重复代码维护问题. 二.继承之语法 1. @interface 子类名:父类名 2. OC只支持单继承,不支持继承多个父类. 3. 重构--移植和优化代码. 三. 继承的工作机制 1. 方法调度 子类拥有一个指向它父类的引用指针,消息传递时,OC的方法调度机制使用该信息来找到正确的实现方法,查找过程是现在子类中找,找不到再到父类中继续找. 2. 实例变量 1)继承实例源码 @interface Shape : NSObject {

oc中的oop基础及类的基本介绍

面向对象的(OOP)的基础知识 类(class):表示一组对象数据的结构体,对象通类来得到自身.类名首字母大写. 对象(objcet):是一种包含值和指向其类的隐藏指针的结构体.运行中的程序中通常会有n个对象,首字母不用大写. 实例(instance):是对对象的另一种称呼. 消息(message):是对象执行的操作,用于通知对象去做什么.对象接收到消息后,将查询相应的类,来执行正确的代码运行程序. 方法(method):j是为响应消息而运行的代码,这个以后在oop中会很常用.根据类的对象或消息

OC中的类簇的使用和初始化方法中属性的使用

今天遇到了几个和字符串相关的内存问题,和大家分享一下 NSString *name = [[NSString alloc]initWithString:@"张三"];NSLog(@"%d",[name retainCount]); 这两行代码的打印结果是-1, NSString * aString = [[NSString alloc] initWithFormat:@"123"]; NSLog(@"%d",aString.r