`
mikixiyou
  • 浏览: 1094671 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:351879
社区版块
存档分类
最新评论

Objective-C中常量的定义和retainCount管理

    博客分类:
  • iOS
阅读更多
在objective-c中,一个应用中,定义不同名称的变量时,如果值是一样的,则会使用同一个内存空间。这点对于NSString类型适用,对于UIImage类型也适用。

但,这里内存管理怎么搞?retain count有如何定义?还是说这是常量,没有retain count一说。像nsstring的retaincount值就是fffffffff,最大的无符号整数。

NSString *str = @"我";
NSString *str1 = @"我";
NSLog(@"%p,%p",str,str1);

UIImage *image = [UIImage imageNamed:@"image.png"];
UIImage *image1 = [UIImage imageNamed:@"image.png"];
NSLog(@"%p,%p",image,image1);

retainCount规则在此不使用。

    NSString * str1=@"welcome";

    NSString * str2=@"mlgb";

    NSString * str3;

    NSLog(@"str1 retainCount is %i",[str1 retainCount]);

    NSLog(@"str2 retainCount is %i",[str2 retainCount]);

    NSLog(@"str3 retainCount is %i",[str3 retainCount]);

    str3=[str1 retain];

    NSLog(@"str1 retainCount is %i",[str1 retainCount]);

    NSLog(@"str3 retainCount is %i",[str3 retainCount]);

    str3=[str2 retain];

    NSLog(@"str2 retainCount is %i",[str1 retainCount]);

    NSLog(@"str3 retainCount is %i",[str2 retainCount]);

 


个人见解。有了解的朋友的指点一二。

0
2
分享到:
评论

相关推荐

    Objective-C&UIKit自学笔记

    在Objective-C中定义类,通常包含`.h`头文件和`.m`实现文件。方法类型分为实例方法(`-`)和类方法(`+`)。例如: ```objc @interface MyClass : NSObject - (void)myInstanceMethod; + (void)myClassMethod; @end...

    简单讲解Objective-C的基本特性及其内存管理方式..pdf

    Objective-C基本特性和内存管理方式 Objective-C是一种基于C语言的面向对象编程语言,用于开发Mac OS X和iOS平台的应用程序。下面是Objective-C的基本特性和内存管理方式的详细介绍: OC语言简介 Objective-C语言...

    objective-c内存管理

    Objective-C的内存管理机制与.NET和Java等语言中常见的自动垃圾回收机制不同,它更接近于C语言的手动管理方式,但在此基础上加入了一些自动化手段,使得开发人员能够在一定程度上简化内存管理的工作。 ##### 1. ...

    [Objective-C.2.0程序设计

    6. **内存管理**:Objective-C使用自动引用计数(ARC)来自动管理内存,这是从早期的手动内存管理(如retain和release)发展而来的。理解如何正确使用属性的`strong`,`weak`,`unsafe_unretained`,`assign`等修饰...

    Objective-C基础教程第二版

    - **函数定义**:在Objective-C中,函数可以被定义为非成员函数或类的方法。 - **方法调用**:Objective-C采用消息传递的方式调用方法,例如`[object methodName]`。 #### 三、面向对象编程(OOP)特性 ##### 3.1 类...

    简单讲解Objective-C的基本特性及其内存管理方式

    内存管理是Objective-C开发中的重要环节,正确地使用`retain`和`release`能确保对象生命周期的正确管理,避免内存泄漏。随着Apple引入ARC(Automatic Reference Counting),内存管理变得更为自动化,但在某些场景下...

    IOS软件工程师笔试题(全选择题)【0-1年经验】.pdf

    通过这些题目的解答和知识点的解释,可以发现这份笔试题主要覆盖了Objective-C语言的基础语法、内存管理、类定义和实现、以及框架使用等核心知识点,适合用来测试求职者对iOS开发中Objective-C编程的基础能力。

    Objective-C 编程之道 iOS设计模式解析 修改MRC为ARC

    TouchPainter这个文件可能是示例代码或者一个iOS绘画应用的项目,它可能展示了如何在实际应用中运用Objective-C和设计模式,同时展示了MRC到ARC转换的过程。通过研究这个项目,开发者可以更直观地理解上述理论知识,...

    Objective-C中的block与Swift中的尾随闭包使用教程

    Objective-C中的Block和Swift中的闭包虽然在语法上有差异,但核心概念是相同的,都是用来封装和传递代码块。Swift的闭包语法更加简洁,尤其是尾随闭包和自动闭包的引入,使得代码更加易读。 总的来说,理解这两种...

    iPhone内存管理

    ### iPhone内存管理:Objective-C中的深入解析 在iOS开发领域,内存管理是至关重要的技能之一。这不仅关乎应用的性能,还直接影响到用户体验。本文将深入探讨iPhone开发中Objective-C的内存管理技术,涵盖基本概念...

    IOS应用源码——RetainCount.rar

    在iOS应用开发中,了解内存管理是至关重要的,特别是对象的生命周期和引用计数(RetainCount)。这个“IOS应用源码——RetainCount.rar”压缩包文件提供了一个实际的示例,帮助开发者深入理解Objective-C中的引用...

    Objectiov-c考试题

    4. **方法签名**:题目5中提到了Objective-C的方法签名,包括方法类型、方法名和返回值类型。 5. **预处理指令**:`#import`和`@class`的用途在于头文件引用,前者会引入整个头文件,后者只是声明类的存在,避免...

    ios开发ios基础开发面试题.txt

    - **类**:在Objective-C中,类定义了对象的行为和属性。 - **实例化**:创建类的实例(对象)的过程称为实例化。例如: ```objective-c Person *person = [[Person alloc] init]; ``` #### 3. const 关键字是...

    cocoa框架深入了解

    Cocoa框架是苹果公司为Mac OS X和iOS操作系统开发应用程序的核心框架,它基于Objective-C语言构建,提供了丰富的组件和工具,使得开发者能够创建功能强大的图形用户界面和复杂的系统交互。对于初学者而言,掌握Cocoa...

    iOS面试题2019年度总结188题(下).pdf

    - `NSNotification`是Objective-C中用于发布和接收通知的机制。它允许对象订阅特定的通知,并在这些通知触发时执行相应的操作。 - 通知可以用于实现松耦合的通信机制,适用于跨模块的数据同步和状态更新。 ### 第...

    Ios retain assign区别

    在iOS开发中,Objective-C是主要使用的语言之一,而Objective-C中的属性声明是理解对象交互方式的关键。本文将详细解释`retain`和`assign`的区别,以及其他相关的属性修饰符如`readonly`、`readwrite`、`nonatomic`...

    oc内存管理.

    Objective-C(OC)内存管理是管理内存的一种方式,主要通过引用计数(retain count)来手动控制对象的生命周期。OC的内存管理机制有别于.Net和Java中的全自动垃圾回收机制,它允许开发者更细致地控制内存使用,但也...

    10天掌握IOS 内存管理

    在Objective-C中,对象的生命周期由其引用计数决定,这是内存管理的核心。对象的“拥有”概念至关重要,意味着一个对象至少需要有一个拥有者才能保持其存在。一旦没有拥有者,对象将被自动销毁,以避免内存泄漏。 *...

    iOS笔试题

    在Objective-C中,`#import` 和 `#include` 都是用来包含其他文件的关键字,而 `@class` 则是声明类的一个方式。 1. **`#import` vs `#include`**: - **`#import`**:能够包含另一个文件的内容,而且具有文件导入...

    复杂数据类型变量的引用计数与block以及__block修饰符的关系

    标题中提到的“复杂数据类型变量的引用计数与block以及__block修饰符的关系”涉及了Objective-C中内存管理的核心概念之一,即引用计数(retainCount)以及与之密切相关的block(代码块)的特性。为了深入理解这些...

Global site tag (gtag.js) - Google Analytics