zoukankan      html  css  js  c++  java
  • OC-内存管理的一些要点

    创建一个BOOK对象,对其属性进行声明 定义。

    @property 属性声明 定义了对属性的赋值 

    -(void) dealloc 方法在对象销毁的时候进行调用。


    #import <Foundation/Foundation.h>
    
    @interface Book : NSObject
    @property (nonatomic,assign) int price;
    @end


    #import "Book.h"
    
    @implementation Book
    
    -(void)dealloc
    {
        NSLog(@"Book is dealloc");
        [super dealloc];
    }
    
    @end


    创建一个Person对象,对其属性进行声明 定义。

    @property 属性声明 定义了对属性的计数加一并在-(void) dealloc 方法在对象销毁的时候减一;


    #import <Foundation/Foundation.h> 
    #import "Book.h"
    
    @interface Person : NSObject
    
    @property (nonatomic ,retain)Book *book; 
    
    @end

    #import "Person.h"
    
    @implementation Person
    
    
    -(void)dealloc
    {
        [_book release];
        NSLog(@"Person is dealloc");
        [super dealloc];
    }
    
    @end
    


    在main函数中。声明两个对象。并同一时候在使用完后进行销毁。遵循了谁创建谁销毁的原则。

    #import <Foundation/Foundation.h>
    #import "Person.h" 
    #import "Book.h"
    
    int main(int argc, const char * argv[])
    {
        Person *p=[[Person alloc] init]; 
        
        Book *b=[[Book alloc] init];
        b.price=45;
        p.book=b;
        [b release];
        
        NSLog(@"%d ",p.book.price );
        
        
        [p release];
    
        return 0;
    }

    @property属性的參数分别为

    assign,retain,copy-针对引用计数。assign为默认,并在非oc对象作为属性时使用

    nonautomic,automic-在线程中起一定的作用,一般nonautomic效率会高点,默认是automic

    readonly,readwrite-对属性进行setter getter存储。一般默认是readwrite


  • 相关阅读:
    画图软件
    万用表
    传导发射
    MOT
    Docker
    第十二章、私营部门和第三部门中的采购
    第十一章、公共部门中的采购
    第十章、部门与行业环境
    第九章、信息与通信技术系统
    第八章、组织的采购职能
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6899731.html
Copyright © 2011-2022 走看看