runloop

performSelector:onThread breaks runloop?

匆匆过客 提交于 2019-12-11 17:57:25
问题 I'm not sure how to use the API performSelector:onThread and I need some suggestions here. As far as I known, I need a runloop to make the call of performSelector:onThread , so I made one. But then I find a problem : once I called performSelector:onThread , the runloop stops. Here 's my test code, runloop is in function kickOffThread . - (void)setCurrentThread { self.thread = [NSThread currentThread]; } - (void)kickOffThread { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [self

Uncaught exception in Firebase runloop (3.0.0) In my production Android app. Please report to support@firebase.com

主宰稳场 提交于 2019-12-08 06:36:08
问题 I know there are already many issues in StackOverflow. But I didn't found any of these fixed my issue. My Android app is in production and I am getting this error almost everyday from my user. Fatal Exception: java.lang.RuntimeException: Uncaught exception in Firebase runloop (3.0.0). Please report to support@firebase.com at com.google.android.gms.internal.zzagf$1$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java

Running NSTimer on a thread

孤者浪人 提交于 2019-12-07 12:38:58
问题 I am trying to run a NSTimer on a thread using iPhone SDK 3.0. I think I am doing everything correctly (new runloop etc.). If I call [timer invalidate] on viewDidDissappear though I get this error: bool _WebTryThreadLock(bool), 0x3986d60: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now... Program received signal: “EXC_BAD_ACCESS”. Here is my code: - (void)viewDidAppear:(BOOL

Uncaught exception in Firebase runloop (3.0.0) In my production Android app. Please report to support@firebase.com

纵然是瞬间 提交于 2019-12-07 07:45:31
I know there are already many issues in StackOverflow. But I didn't found any of these fixed my issue. My Android app is in production and I am getting this error almost everyday from my user. Fatal Exception: java.lang.RuntimeException: Uncaught exception in Firebase runloop (3.0.0). Please report to support@firebase.com at com.google.android.gms.internal.zzagf$1$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:815) at android.os.Handler.dispatchMessage(Handler.java:104) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java

iOS 定时器

↘锁芯ラ 提交于 2019-12-07 01:23:17
iOS里面使用的定时器类型一般有三种NSTimer、CADisplayLink、GCD。 1、最精准的定时器 - GCD #import "ViewController.h" @interface ViewController () // 必须要有强引用,不然对象会被释放 @property (nonatomic , strong) dispatch_source_t timer ; @end @implementation ViewController -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ NSLog(@"__%s__",__func__); #warning 重复执行的GCD定时器 // 1、基于GCD的定时器,创建timer对象: // 参数一:source的类型DISPATCH_SOURCE_TYPE_TIMER 表示定时器类型 // 参数二:描述内容,比如线程ID // 参数三:详细描述内容 // 参数四:队列,决定GCD的队列在哪个线程执行 dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0

ios--内存管理strong和weak的简单理解

不羁的心 提交于 2019-12-06 03:18:21
如果在网上搜关于内存管理最多的总结就是谁持有谁释放。但是内存管理往多的说是有好多东西的,我今天只写一下关于strong、weak和autoreleas(以后会写片博客,会介绍到它们的底层运作)。在此也给想更深入了解的伙伴们推荐本书一个日本前辈写的Objective-C高级编程,我自己讲内存管理梳理的差不多清晰的时,多亏了它。 关于内存管理,我原来有一段时间都对strong、weak傻傻的区分不清楚,也没有多少兴趣去了解。直到一天我真的在使用代理中碰到了神奇的内存泄漏,害死我了,经过调查锁定了凶手就是weak,根本的罪魁祸首是我对修饰符使用的一知半解。希望这点理解能起到一点点帮助。 a、区分strong、weak strong:strong为强引用,是id类型对象和对象默认的所有权修饰符(我们平时在@property中指定了属性的修饰strong、weak、或者是assign,但是在创建其他对象的时候,系统帮我们默认加了_strong修饰符进行内存管理),使用strong修饰的对象在超出其变量作用域时,即该变量被废弃时,会释放其被赋予的对象。使用strong会对对象被持有对象的引用计数产生影响,当其持用一其他对象的时候,会将其他对象的引用计数加1,当出作用域强引用失效时,会释放掉对其持有对象的持有。 weak:weak为若引用。weak修饰的对象

Running NSTimer on a thread

谁说我不能喝 提交于 2019-12-06 00:46:12
I am trying to run a NSTimer on a thread using iPhone SDK 3.0. I think I am doing everything correctly (new runloop etc.). If I call [timer invalidate] on viewDidDissappear though I get this error: bool _WebTryThreadLock(bool), 0x3986d60: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now... Program received signal: “EXC_BAD_ACCESS”. Here is my code: - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [activityIndicator startAnimating]; NSThread* timerThread =

再次理解runloop

半世苍凉 提交于 2019-12-05 01:13:55
runloop就是线程内的“死”循环,让线程保活。 同时runloop是事件驱动的,所以主线程里面所有的事件都是包裹在每一个runloop循环里面。 简而言之:app启动后,主线程里发生的所有事件都是包裹在主线程的runloop循环中的,但子线程一般不是,一般子线程都是它本身的这个函数执行完线程就结束了,除非子线程单独开启自己的runloop。 来源: https://www.cnblogs.com/yibinpan/p/11894781.html

iOS经典面试题

做~自己de王妃 提交于 2019-12-03 04:50:46
iOS经典面试题 前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS 面试题 和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充。我的理解如果有错漏请一定指出,非常感谢! 从12年开始做面试官到现在已经三个年头了,这期面过很多形形色色的开发,有腾讯的、有百度的、有小公司的、有做外包的,还有完全没有代码能力来做管理的。给我的感觉是百度出品的技术能力最好,基础知识、技术细节掌握的非常的扎实并且自信。腾讯出品技术细节上也非常厉害,平均来说比百度差一些,但是解决问题的能力非常强,思维很活跃大局观好。小公司、外包公司的同学技术细节、基础知识要差一些。我个人是非常反对以出身论英雄BAT出品就一定比其他公司的优秀,只能说BAT提供的技术氛围更好,你可以跟更多优秀的人共事,相比小公司技术进步更容易些。 这期间我也面了很多互联网公司,腾讯、百度、阿里、快播还有其他很多中小型公司,给我的感觉是中国整体的互联网面试官的态度非常糟糕,面试官经常性习惯性的迟到,理由有开会啦、在吃饭啦,最离谱的是没有任何理由就让你在那里等

Runloop

匿名 (未验证) 提交于 2019-12-02 23:47:01
1 Runloop基础知识 - 1.1 字面意思 a 运行循环 b 跑圈 - 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触摸事件、定时器事件【NSTimer】、selector事件【选择器・performSelector・・・】) c 节省CPU资源,提高程序性能,有事情就做事情,没事情就休息 - 1.3 重要说明 (1)如果没有Runloop,那么程序一启动就会退出,什么事情都做不了。 (2)如果有了Runloop,那么相当于在内部有一个死循环,能够保证程序的持续运行 (3)main函数中的Runloop a 在UIApplication函数内部就启动了一个Runloop,函数返回一个int类型的值 b 这个默认启动的Runloop是跟主线程相关联的 - 1.4 Runloop对象 (1)在iOS开发中有两套api来访问Runloop a.foundation框架【NSRunloop】 b.core foundation框架【CFRunloopRef】 (2)NSRunLoop和CFRunLoopRef都代表着RunLoop对象,它们是等价的,可以互相转换 (3)NSRunLoop是基于CFRunLoopRef的一层OC包装,所以要了解RunLoop内部结构