Objective-C 自动释放池不释放对象

2023-12-08

我对 Objective-C 很陌生,正在阅读内存管理。我试图用 NSAutoreleasePool 玩一下,但不知何故它不会释放我的对象。

我有一个带有 setter 和 getter 的类,它基本上设置一个 NSString *name。释放池后,我尝试 NSLog 该对象,它仍然有效,但我想它不应该?

@interface TestClass : NSObject
{
    NSString *name;
}

- (void) setName: (NSString *) string;
- (NSString *) name;


@end

@implementation TestClass   

- (void) setName: (NSString *) string
{
        name = string;
}  

- (NSString *) name
{
    return name;
}

@end

int main (int argc, const char * argv[]) {

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

TestClass *var = [[TestClass alloc] init];

[var setName:@"Chris"];
[var autorelease];
[pool release];

// This should not be possible?
NSLog(@"%@",[var name]);


return 0;
}

当您释放指针 var 时,您是在告诉操作系统它指向的内存可以重新分配。指针仍然指向该内存,并且在重新分配之前它仍然包含对象的剩余部分。一旦它被重新分配,尝试调用 name 方法将不再有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C 自动释放池不释放对象 的相关文章

  • 如何为 NSAttributedString 内的文本设置“隐藏”属性?

    我有一个 Cocoa 应用程序NSTextView控件将其文本保存在NSAttributedString 实际上我相信这是一个NSMutableAttributedString 我可以轻松地在该字符串内的不同字符范围上设置和修改不同的文本属
  • 如何从 AFNetworking 和 AFJSONRequestOperation 获取可变字典?

    我将 JSONKit 与 AFNetworking 的 AFHTTPClient 带有 AFJSONRequestOperation 一起使用 我似乎无法弄清楚如何触发使用 JSONKit 的 mutableObjectFrom 方法 而不
  • 高效创建 x 层深度的嵌套 for 循环

    这可能是一件简单的事情 但我需要创建一个循环结构 使其循环 y x 次以创建 x 和 y 的所有可能组合 例如 如果有 4 个 x 每个 x 有 2 个 y 我想做这样的事情 for int a 0 a lt y a for int b 0
  • 将 UIButton 中的图像缩放到 AspectFit?

    我想将图像添加到 UIButton 并且还想缩放图像以适合 UIButton 使图像变小 请告诉我该怎么做 这是我尝试过的 但它不起作用 将图像添加到按钮并使用setContentMode self itemImageButton setI
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • ios7 navigationController PushViewController 动画错误

    看来我在 navigationController PushViewController 方法中发现了一个错误 为了重新创建它 我采用了示例主详细信息项目并对 didSelectRow method void tableView UITab
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 防止 AlertView 被解雇

    任何人都可以帮助我防止在其按钮单击事件上解雇警报视图吗 我有一个 textview 作为我的alertView 的子视图 如果 textview 值为 nil 我不想关闭它 因为这是一个非常老的问题 但我得到了一个解决方案 并且如果其他开发
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • 无法在 Windows 上使用 Gnustep 编译 Objective C

    嗨 我是初学者 学习目标c 我发现错误 hello m 1 34 Foundation Foundation h 没有这样的文件或目录 我开始知道我需要制作一个 make 文件 我可以知道如何制作 make 文件吗 无需创建 makefil
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s

随机推荐

  • (MathLink) 正确处理从属内核生成的消息

    当工作通过MathLink对于从属内核 我在正确解析时遇到问题TextPackets 特别是当这样的数据包对应于Message由从属内核生成我根本不明白如何正确处理它 我需要这样的Messages打印在评估笔记本中 就好像它们是由主内核生成
  • 强制 Emmet (VS Code) 内嵌所有缩写

    我经常使用以下方法将部分 HTML 文本包装在标签内Emmet in VS Code 命令是 Emmet Wrap with Abbreviation Windows 上为 Alt Shift W 是否可以强制 Emmet 将我的所有选择内
  • 何时使用右值引用

    所以基本上我的问题是 什么时候应该使用右值引用 在这个例子中 我正在研究一个记录器类 它只是将内容记录到控制台 我有不同的功能来记录不同日志级别的消息 它们接受 std string 作为参数 每个函数是否应该有两个版本 第一个用于 正常
  • PHP 属性作为对象

    是否可以将类的属性设置为对象 Like class User public x public y new ErrorVO public w new array 在构造函数中 是的 class User public x public y n
  • 为什么内联事件处理程序属性在现代语义 HTML 中是一个坏主意?

    内联事件处理程序被认为是一种不好的做法吗 例如
  • 如何使用 LISTAGG 返回带引号前缀的行

    我正在尝试返回对于在查询中设置 in 条件有用的行 这是我的查询 SELECT LISTAGG PRODUCTID WITHIN GROUP ORDER BY RowSequence FROM DWRE ITEM V 返回订单1 订单2 我
  • CPU使用率(top的输出)总和怎么会超过100%呢?

    我正在编写一个小 python 脚本来测试一些东西 稍后我想用它通过 gnuplot 创建资源使用图 但首先进行一些测试 脚本看起来像 import subprocess result subprocess check output top
  • 如何链接到 Multimarkdown 中的命名锚点?

    我曾多次提到 MultiMarkdown 对内部链接 命名锚点的支持 但我无法找到如何实际执行此操作的单个示例 那么 表示命名锚点的语法是什么 链接到它的语法是什么 与链接到任何其他 URL 相同 仅使用 foo 而不是http 在标准 M
  • asmack 中的 ReconnectionManager

    我有一个Android项目 需要使用asmack库来实现实时聊天 关键功能是重新连接机制 这意味着我的应用程序可以在互联网连接丢失时自动重新连接 这是我的代码片段 ConnectionConfiguration connConfig new
  • VS 22 缓冲区溢出中的 C6386 警告

    我正在尝试创建一个函数 该函数获取矩阵并将其列向右或向左移动 具体取决于用户的重复输入 在执行此操作时 我注意到编译器警告 C6386 C6001 C6385 都在同一代码区域中 但我找不到问题 警告 C6386 写入 temp row 时
  • Bootstrap 4:将“滚动到第一个无效字段”添加到“如果无效则不要“提交”脚本)

    我在用Bootstrap 4如果以下脚本中的任何字段无效 我将停止提交表单 我试图弄清楚 到目前为止没有成功 我需要在 之后添加什么代码event stopPropagation 以使表单滚动到找到的第一个无效字段 感谢您的帮助 谢谢 Fo
  • 仅在 Woocommerce 3 中显示基于标签的相关产品

    默认情况下 单个产品页面上的 Woocommerce 根据类别显示相关产品 相关产品滑块将显示相同类别的产品 Woocommerce 文档指出 相关产品是一些模板的一部分 这些模板从您的商店中提取与当前产品共享相同标签或类别的产品 这些产品
  • 使用 HTTP 状态代码时区分基础架构和业务逻辑

    我们正在尝试构建一个 REST 接口 允许用户测试特定资源是否存在 假设我们正在销售域名 用户需要确定该域名是否可用 An HTTP GET结合200 and 404乍一看 响应代码似乎很合理 我们遇到的问题是区分查找服务成功服务的请求和其
  • iOS setContentOffset 在 ipad 上不起作用

    这实在是太奇怪了 我有一个包含三个图像的滚动视图 用户滑动以查看下一个图像 但是 我希望第一个屏幕从中间图像开始 简单的 我将使用 setContentOffset 一切都会好起来的 该代码适用于 iPhone 模拟器 但不适用于 iPad
  • Spring Batch FlatFileItemReader 继续处理错误数量的令牌

    我正在使用 Spring BatchFlatFileItemReader解析 csv 文件 我时不时地收到格式错误的行 并且应用程序完全崩溃 Caused by org springframework batch item file tra
  • Django Rest Framework 可写嵌套序列化器

    我正在编写一个食谱组织器作为课程的示例项目 除了使用一些非常基本的功能之外 我对 DRF 没有太多经验 这是目标 使用相关成分创建一个新食谱 在创建 Recipe 对象的同时创建 Ingredient 对象 模型 py class Ingr
  • JQuery - 禁用滚轮直到动画完成

    我试图在鼠标滚轮事件上禁用鼠标滚轮 并仅在操作完成后才启用它 window on DOMMouseScroll mousewheel function event disable mousewhell until the following
  • Codeigniter - 如何在视图中包含动态 javascript 文件

    如果满足某些条件 我尝试在标题视图中包含以下代码块 其中包含一些动态值
  • 如何运行大内存的dart程序?

    我试图在 dart 程序中读取一个非常大的文件 超过 1G 但它抛出内存不足异常 如何配置命令行以使其以更大的内存运行 就像 Xmx1G in Java VM 有一个增加堆大小的标志 old gen heap size 例如 old gen
  • Objective-C 自动释放池不释放对象

    我对 Objective C 很陌生 正在阅读内存管理 我试图用 NSAutoreleasePool 玩一下 但不知何故它不会释放我的对象 我有一个带有 setter 和 getter 的类 它基本上设置一个 NSString name 释