首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用objc_msgSend时避免静态分析器泄漏警告?

使用objc_msgSend时避免静态分析器泄漏警告?
EN

Stack Overflow用户
提问于 2012-04-12 06:55:30
回答 1查看 305关注 0票数 0

我有来自泛型工厂类的以下(简化)代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (id) invokeSetup: (id) object {
    // Just an example, subclasses delegate setup to a component that either returns +0 or +1 references
    return objc_msgSend(object, @selector(init));
}

- (id) newInstance {
    id object = objc_msgSend([NSString class], @selector(alloc));
    id replacement = [self invokeSetup: object];

    return replacement;
}

分析器在return replacement:上产生警告:

警告:具有+0保留计数的对象返回给调用方,其中需要+1 (拥有)保留计数

我需要告诉分析器- invokeSetup返回的引用是+1。

  1. I不能用ns_returns_retained注释invokeSetup,因为它是继承的,还有其他的子类,invokeSetup返回+0引用。如果是+1或+0,则只能在运行时检测到。
  2. i不能更改任何方法的名称。
  3. 是设计的方式。也许有更好的设计,但在这里是无法改变的。

是否有可能在赋值点(id replacement = ...)以某种方式告诉ARC,引用肯定是+1?

谢谢你,乔晨

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-12 07:19:36

有关在代码中抑制静态分析器警告的方法,请参见https://stackoverflow.com/a/5833430/1313031

但是的,最好的办法就是重命名newInstance

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10126167

复制
相关文章
nginx 访问.php文件正常,访问.html文件500错误
Nginx遇上Access Denied提示怎么解决 这几天在摆弄linux下面的各种服务器,对nginx非常有兴趣。
友儿
2022/09/11
1.7K0
用imdisk创建内存盘存放缓存文件提高访问速度
当下内存条和SSD硬盘都比两三年前便宜很多了,2000元内配个16G内存的AMD台式机(含1080P显示器)就完全够日常办公用了,如果有条件搞2个3600MHz的16G内存条组成双通道超频到3933MHz甚至4133Hz甚至更高就更完美了。为了让内存发挥更大的作用,可以创建内存盘来放缓存,甚至一些业务都完全可以跑在内存盘里,这样访问很快。下面说说内存盘怎么实施:
Windows技术交流
2023/09/12
2.8K0
Android RxJava应用:从磁盘/内存缓存中获取缓存数据
Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。
Carson.Ho
2022/03/25
2.3K0
Android RxJava应用:从磁盘/内存缓存中获取缓存数据
Android RxJava 实战系列:从磁盘 / 内存缓存中 获取缓存数据
Carson_Ho的Github地址 = RxJava2实战系列:从磁盘 / 内存缓存中 获取缓存数据
Carson.Ho
2019/02/22
2K0
Caffeine缓存 最快缓存 内存缓存
Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存。使用Caffeine后无需使用Guava Cache,从并发的角度来讲,Caffeine明显优于Guava,原因是使用了Java 8最新的StampedLock锁技术。
赛先生和泰先生
2022/01/21
3K0
Caffeine缓存 最快缓存 内存缓存
Nginx使用Linux内存加速静态文件访问
Nginx是一个非常出色的静态资源web服务器。如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO。
EltonZheng
2021/01/26
2.3K0
HTML DOM 访问
下面的例子返回包含文档中所有 <p> 元素的列表,并且这些 <p> 元素应该是 id="main" 的元素的后代(子、孙等等):
陈不成i
2021/07/21
7160
内存缓存MemoryCache
内存缓存MemoryCache实现了ICache接口,Redis同样实现了ICache接口,两者在缓存操作上达到了高度抽象统一。应用设计时一律使用ICache接口,开发环境装配为MemoryCache,生产环境根据分布式需要可以装配为Redis。如果应用系统没有分布式需求,继续使用MemoryCache更好。
JusterZhu
2022/12/07
8070
内存缓存MemoryCache
go 内存缓存
很多时候我们为了缩短单次请求的时间,就需要去分析请求在哪一步耗时比较大,一般越靠近应用层优化效果越大,后端程序就是请求到达路由解析到返回结果这一步骤了。
花落花相惜
2021/11/25
8690
[BlogCore操作文档4] MemoryCache:内存缓存
采用最新的前后端完全分离技术【 ASP.NET Core Api 6.0 + Vue 2.x 】,并结合 IdentityServer4 ,可快速解决多客户端和多资源服务的统一认证与鉴权的问题,以及整合较为完善的数据权限控制。
老张的哲学
2023/08/23
2970
[BlogCore操作文档4] MemoryCache:内存缓存
内存缓存详解
很多时候我们为了缩短单次请求的时间,就需要去分析请求在哪一步耗时比较大,一般越靠近应用层优化效果越大,后端程序就是请求到达路由解析到返回结果这一步骤了。
花落花相惜
2021/12/16
6920
从GPU的内存访问视角对比NHWC和NCHW
NHWC和NCHW是卷积神经网络(cnn)中广泛使用的数据格式。它们决定了多维数据,如图像、点云或特征图如何存储在内存中。
deephub
2023/10/07
1.6K0
从GPU的内存访问视角对比NHWC和NCHW
JMeter访问redis缓存
第二次工业革命在20世纪初, 基于劳动分工的电力驱动时代, 人类大量使用流水线的电气化时代, 20世纪70年代 电子技术,工业机器人的使用提升了生产效率, 使生产自动化水平进一步提高, 人类进入了第三次工业革命. 第四次工业革命就是工业4.0 , 基于大数据, 物联网(机器人视觉传感器)融合的系统在生产中大规模使用, 使人类进入”智能化时代”. IT技术是4.0非常重要的核心, 是支撑未来长期技术性和经济周期的基础.
louiezhou001
2019/07/24
1.2K0
JMeter访问redis缓存
centos7.0 可以访问HTML文件,不能访问PHP文件,因为php-fpm没有扩展包
解决方法 :https://blog.csdn.net/ityang_/article/details/53980190
全栈程序员站长
2022/07/07
9740
centos7.0 可以访问HTML文件,不能访问PHP文件,因为php-fpm没有扩展包
【Android 内存优化】Bitmap 内存缓存 ( Bitmap 缓存策略 | LruCache 内存缓存 | LruCache 常用操作 | 工具类代码 )
Glide 开源库 : 官方建议凡是使用到 Bitmap 解码 , 显示 , 缓存等操作 , 直接使用 Glide 开源库进行上述操作 , 不建议直接操作 Bitmap 对象 ;
韩曙亮
2023/03/27
2.2K0
(代码篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
JAVA虚拟机内部便会调用OS底层的 read()系统调用完成操作,在调用 in.read()的时候就是从内核缓冲区直接返回数据了。
intsmaze-刘洋
2018/08/29
4740
(代码篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
(理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
  为了快速构建项目,使用高性能框架是我的职责,但若不去深究底层的细节会让我失去对技术的热爱。   探究的过程是痛苦并激动的,痛苦在于完全理解甚至要十天半月甚至没有机会去应用,激动在于技术的相同性,新的框架不再是我焦虑。   每一个底层细节的攻克,就越发觉得自己对计算机一无所知,这可能就是对知识的敬畏。
intsmaze-刘洋
2018/08/29
1.7K1
(理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
禁止IIS缓存静态文件的方法(png,js,html等)
IIS为了提高性能,默认情况下会对静态文件js,html,gif,png等做内部缓存,这个缓存是在服务器iis进程的内存中的。IIS这么做在很大程度上可以提高静态文件的访问性能,在正常情况下只要静态文件更新了IIS也会更新缓存。但是如果更新的静态文件很多就有可能出现缓存不更新的情况。
会长君
2023/04/26
2.9K0
【缓存】HTML5缓存的那些事
在HTML5出生之前,通常在浏览器(客户端)使用cookies来存储客户端的内容;
前端修罗场
2023/10/07
4151
【缓存】HTML5缓存的那些事
如何优化tomcat配置(从内存、并发、缓存4个方面)优化
  Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。    JAVA_OPTS参数说明    -server 启用jdk 的 server 版;    -Xms java虚拟机初始化时的最小内存;    -Xmx java虚拟机可使用的最大内存;    -XX: PermSize 内存永久保留区域    -XX:MaxPermSize 内存最大永久保留区域    服务器参数配置
拓荒者
2019/03/11
2.2K0

相似问题

Javascript -从内存缓存访问对象

15

如何从AWS Lambda访问内存缓存?

16

内存访问和缓存

22

访问内存缓存项

11

毕加索-仅访问内存缓存

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文