处理xcode警告: warning:performSelector may cause a leak because its selector
来源:互联网 发布:淘宝搜索词查询在哪里 编辑:程序博客网 时间:2024/06/06 00:52
转载自:
http://blog.sina.com.cn/s/blog_7dc11a2e0101gsk0.html
在ARC项目中使用
主要是警告信息,在非ARC项目中没有这个警告。如果是在某一处修改只需要加入下列代码:
<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic push</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic ignored </span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">"-Warc-performSelector-leaks"</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">[</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">.</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">ticketTarget performSelector</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">.</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">ticketAction withObject</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">];//此处是你调用函数的地方</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"></span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic pop</span></code>
<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic push</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic ignored </span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">"-Warc-performSelector-leaks"</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">[</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">.</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">ticketTarget performSelector</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">.</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">ticketAction withObject</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> self</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">];//此处是你调用函数的地方</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"></span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#pragma</span><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> clang diagnostic pop</span></code>
<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; line-height: 21px; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">如果在程序中多处使用,可以写一个宏定义,如下:</span></code>
</pre><pre name="code" style="white-space: pre-wrap; color: rgb(50, 62, 50); font-size: 14px; line-height: 21px; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 5px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif; overflow: auto; width: auto; max-height: 600px; background-color: rgb(85, 115, 79);"><code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: gray;">#define</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">SuppressPerformSelectorL<wbr>eakWarning</wbr></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">Stuff</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">)</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(0, 0, 139);">do</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">{</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">_Pragma</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">"clang diagnostic push"</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">)</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">_Pragma</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">"clang diagnostic ignored "-Warc-performSelector-leaks""</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">)</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">Stuff</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">;</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">_Pragma</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">"clang diagnostic pop"</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">)</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> \ </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">}</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(0, 0, 139);">while</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0);">0</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">)</span></code>
如果没有返回结果,可以直接按如下方式调用:
</pre><pre name="code" style="white-space: pre-wrap; color: rgb(50, 62, 50); font-size: 14px; line-height: 21px; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 5px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif; overflow: auto; width: auto; max-height: 600px; background-color: rgb(85, 115, 79);"><code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">SuppressPerformSelectorL<wbr>eakWarning</wbr></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">[</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">_target performSelector</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">_action withObject</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">self</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">]</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">);</span></code>
如果要返回结果,可以按如下方式调用:
</pre><pre name="code" style="white-space: pre-wrap; color: rgb(50, 62, 50); font-size: 14px; line-height: 21px; word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 5px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif; overflow: auto; width: auto; max-height: 600px; background-color: rgb(85, 115, 79);"><code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu sans Mono', 'Bitstream Vera sans Mono', 'Courier new', monospace, serif;"><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">id result</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">;</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(43, 145, 175);">SuppressPerformSelectorL<wbr>eakWarning</wbr></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">(</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> result </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">=</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"> </span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">[</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">_target performSelector</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">_action withObject</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">:</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">self</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">]</span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;"></span><span style="word-wrap: normal; word-break: normal; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;">);</span></code>
0 0
- 处理xcode警告: warning:performSelector may cause a leak because its selector
- warning:performSelector may cause a leak because its selector
- warning:performSelector may cause a leak because its selector
- performSelector may cause a leak because its selector is unknown
- performSelector may cause a leak because its selector is unknown
- performSelector may cause a leak because its selector is unknown
- performSelector may cause a leak because its selector is unknown
- PerformSelector may cause a leak because its selector is unknown
- performSelector may cause a leak because its selector is unknown
- performSelector may cause a leak because its selector is unknown
- PerformSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- 消除warning:PerformSelector may cause a leak because its selector is unknown
- warning:performSelector may cause a leak because its selector is unknown
- Centos7 开放端口
- ubuntu12.04环境安装
- repeater 动态添加行
- jdk配置错误
- 实战体会Java多线程编程精要
- 处理xcode警告: warning:performSelector may cause a leak because its selector
- Entity Framework(实体框架 EF)
- Quick-cocos2d-x的MVC架构之AppBase研究
- Android学习之往系统应用中添加framework层的jar包
- UVa 10118 - Free Candies(记忆化搜索)
- BigDecimal对象的使用
- java代码中重启服务
- deep learning 开山祖师
- ajax实现省市联动(version 1)