SVProgressHUD中setFadeOutTimer方法运行崩溃的问题

在公司做蓝牙项目的时候,关于打开蓝牙提示框的问题 。第一次运行没问题,跳到另一个视图上面,同样运行取消视图就会崩溃的问题。

具体崩溃的方法如下

- (void)setFadeOutTimer:(NSTimer *)newTimer {

if(fadeOutTimer)

[fadeOutTimer invalidate];

fadeOutTimer = nil;

if(newTimer)

fadeOutTimer = newTimer;

}

调试之后最终崩溃到这一句 [fadeOutTimer invalidate];

查了资料之后原来只支持ARC ,要使用ARC编译的源文件的 “compiler flags” 中添加 “-fobjc-arc”。

对于 Xcode 4, 可以在 target -> Build Phases -> Compile Sources 中找到“compiler flags”。 SVProgressHUD这个类中可能会报错relese之类的错误,注视掉即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 07:14:43

SVProgressHUD中setFadeOutTimer方法运行崩溃的问题的相关文章

简述下Objective-C中调用方法的过程(runtime)

Objective-C是动态语言,每个方法在运行时会被动态转为消息发送,即:objc_msgSend(receiver, selector),整个过程介绍如下: objc在向一个对象发送消息时,runtime库会根据对象的isa指针找到该对象实际所属的类 然后在该类中的方法列表以及其父类方法列表中寻找方法运行 如果,在最顶层的父类(一般也就NSObject)中依然找不到相应的方法时,程序在运行时会挂掉并抛出异常unrecognized selector sent to XXX 但是在这之前,ob

在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代码片段呢?终于找到了方法,现在分享出来,给有需要的人. 前提: 1. 本文只是说Windows下的情况.其他操作系统也类似,但略有不同. 2. 必需已经安装好了php,并设置好了环境变量.如果下载的可执行安装包进行安装的,一般已经自动设好环境变量了.如果是下载的zip包自己解压的,需要手工设置环境变

Android 使用DexClassLoader来运行其他apk中的方法

Android中apk文件里的dex文件是对java编译出来的.class文件进行重新打包,当然在打包之前会利用自己的协议做一些数据处理,例如优化函数表和变量表.在java程序中是使用classloader来加载这些编译生成的.class文件,然而在android程序中是通过DexClassLoader来装载这些文件的.这里我们就可以通过DexClassLoader在程序A里面动态装载程序B中的类,并且来调用B程序中的方法. 1.首先先建立一个普通的Android工程,在这个工程中定义一个叫做p

Windows 8 IIS中配置PHP运行环境的方法

在Windows 8 的IIS(8.0)中搭建PHP运行环境: 一:安装IIS服务器 1.进入控制面板>>程序和功能>>打开或关闭Windows 功能,找到Internet信息服务,记得选中CGI这一项 2.安装完成后在浏览器中打开localhost,查看是否能显示IIS的欢迎页面: 二:下载安装配置PHP环境 1.下载PHP,官网地址:http://windows.php.net/download/, 2.将下载的zip压缩包解压到D盘下,解压后为E:\php; 3.进入控制面板

java 27 - 6 反射之 通过配置文件运行类中的方法

在以前,如果我们想要调用一个类中的方法,只能这样子: 例: 有Cat和Dog两个类,里面有eat和run两个成员方法: 1 public class Dog { 2 3 public void eat() { 4 System.out.println("狗吃肉"); 5 } 6 7 public void run() { 8 System.out.println("狗刨"); 9 } 10 } public class Cat { public void eat()

扫盲:php session缓存至memcached中的方法

memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用.这是一套开放源代码软件,以BSD license授权协议发布.[1] memcached仅支持一些非常简单的命令 比如get(获取某个键值) set(用来设定或保存一个缓存): 其本身是缓存服务器,但本身无法决定缓存任何数据,其缓存机制依赖于服务端和客户端两者必不可少(存储是由服务端进行存储,但存储什么是由客户端进行决定的) 因此客户端

在CLR中本地化正在运行的.NET窗口

前段时间在研究某游戏辅助,老外出品,支持七种语言,可这辅助相关的插件却少有中文,因为作者都是老外,并且他们不愿意添加中文.有一些没有加密的插件就被善良的国内用户使用工具软件手工汉化了,但是经过混淆加密的插件就比较困难了,一是需要解密,二是插件数量多更新快,最后弄得只好放弃.有一天,一位用户问我,能不能做一个补丁程序,不去解密也不去修改源程序,只是在窗口显示的时候把文字汉化,他的意思就是hook窗体显示的过程,显然,这是个很不错的想法. 很多年前,曾经流行过一个名叫“南极星”的软件,后来又出了个“

jsp 中声明方法的使用

1.在"<%!"和"%>"之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变量只在该方法内有效.这些方法将在Java程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完毕即可释放内存.当多个客户同时请求一个JSP页面时,他们可能使用方法操作成员变量,对这种情况应给予重视. 解决办法:通过synchronized方法操作一个成员变量来实现一个计数器 <%@ page contentType="text/html;c

三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

版权声明:本文为sang原创文章,转载请注明出处. 目录(?)[+] 关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东.本篇博客我们不讲源码,只看使用.源码的解读会在下一篇博文中带来. inflate方法从大范围来看,分两种,三个参数的构造方法和两个参数的构造方法.在这两类中又有细分,OK,那我们就把各种情况都来演示一遍. 1.三个参数的in