Tag: locking

iOSdateselect器:如何locking无效date?

我一直在努力争取最大/最小的date,说实话,我不知道我在这里错过了什么。 我搜查了很多,似乎没有人抱怨。 (我不是在说设置最大/最小date,因为这些只能使无效date显示为灰色) 以下是我迄今为止所做的: [myDatePicker addTarget:self action:@selector(disableDate) forControlEvents:UIControlEventValueChanged]; 然后,在disableDate上,我有这样的东西: if ([myDatePicker.date compare:[NSDate date]] == NSOrderedDescending) { MyDatePicker.date = [NSDate date]; } (或升序,这取决于我想禁用哪个date) 事情是:它工作正常,但只有一次。 换句话说,只要我打开视图,并尝试挑选,例如,2007年,它可以回滚到2013年。太好了。 但之后,如果我尝试滚动到任何无效的date(包括2007年),它将不会回滚了,直到我重新打开我的看法。 我觉得我在这里错过了一些简单的东西,但我不知道是什么。 提前感谢! PS:只要提到,我已经把它放在了disableDate里面 NSLog(@"Value changed"); 只是为了确保每次我滚动dateselect器时调用方法,是的,它正在工作; PS2:我试过一样,但使用 – (IBAction)datePickerValueChanged:(id) sender 相反,它有完全一样的行为。

iOS – 并发访问内存资源

我的应用程序从服务器,数据和数据描述符下载几个资源。 这些由用户操作触发的下载可以同时执行,比方说,一次最多可下载50个下载。 所有这些asynchronous任务最终都会在内存中创build对象(例如将叶子附加到数据结构上,例如将可变字典或对象添加到数组中)。 我的问题是:这可能会导致稳定性问题? 例如,如果有几个同时发生的任务尝试将密钥添加到同一个字典中,我是否应该处理这种情况,放置某种锁? 如果我实现一个for循环来查找数组中的graphics元素,是否有可能其他正在运行的任务可能会在循环中更改数组内容? 关于除了官方文档以外的多任务,multithreading问题的任何参考或重要的一般定位?

以编程方式自动lockingiPhone

我正在开发一个闹钟应用程序,因为App Store中的大多数时钟应用程序都具有该function,所以需要在特定的时间段后自动locking设备。

lockingiPhone仅在iOS 5上断开连接

我正在开发一个基于套接字的客户端服务器应用程序。 当运行iOS 4,4.2.1,4.3.2等中的任何iDevice的用户在连接到服务器时单击lockingbutton时,连接保持活动状态。 但是,当我点击运行iOS 5的任何设备上的lockingbutton时,连接立即被销毁,并且在从locking屏幕返回到应用程序时,我将看到在调用NSStreamEventErrorOccurred方法时调用的NSAlertView。 我有几个客户端testing应用程序,他们每个人与iOS 5有这个完全相同的问题 – 无论设备(iPod 2G,iPod 4G,iPhone 3GS,iPhone 4)。 iOS 5设备处理锁的方式有没有改变? 我怎样才能解决这个问题? 编辑: 我应该提到这个项目是从Xcode 4(iOS 4 sdk)开始的,现在正在Xcode 4.2中使用。不知道这是否重要。

应用挂在__psynch_mutexwait

我们的应用程序似乎半随机挂在psynch_mutexwait。 这似乎与更新CoreData中存储的一堆数据的后台进程有关 – 但是我完全无法弄清楚是谁locking了造成死锁的原因。 以下是lldb给我的完整堆栈跟踪 – 显然是不完整的,并且线程1的最后一帧是虚假的。 在那之前,我在这个方法中有一个断点,它从来没有被打过。 是否有任何方法来确定什么锁正在等待? (甚至可以得到正确的堆栈跟踪?)当然,涉及的代码很多,这使得随机的NSLog语句成为一个巨大的工作。 (lldb) bt all * thread #1: tid = 0x2503, 0x39da20fc libsystem_kernel.dylib`__psynch_mutexwait + 24, stop reason = signal SIGSTOP frame #0: 0x39da20fc libsystem_kernel.dylib`__psynch_mutexwait + 24 frame #1: 0x39ceb128 libsystem_c.dylib`pthread_mutex_lock + 392 frame #2: 0x00022068 OnDeck`-[AttendanceWorkoutsController buildTable](self=0x00000003, _cmd=0x00000000) + 508 at AttendanceWorkoutsController.m:100 thread #2: tid = 0x2803, […]

我们可以locking应用程序,而iPhone进入睡眠模式?

我正在工作的应用程序,其中包括locking选项。我的应用程序开始与密码屏幕。如果我input正确的代码,然后导航到下一个屏幕。如果我不使用应用很长时间,它进入睡眠模式。当用户想要现在运行该应用程序,密码屏幕应该出现,用户必须再次input代码。是否有可能?是否有任何教程这个?请不要介意发布相关的代码,如果你已经做了。感谢提前。

当应用程序在前台播放声音,屏幕被locking – iOS

前言:我正在构build一个闹钟应用程序。 许多其他闹钟应用程序(如闹钟专业版)可以在屏幕locking并且应用程序处于前台时发出警报。 他们的闹钟可以播放无限的时间,并可以使用系统音量逐渐增加音量。 他们也没有控制音乐控制(如果你打开多任务屏幕,滚动到播放audio,你将看不到他们的图标) 我有一些麻烦重现该function。 要在应用程序处于前台时播放闹钟,我们将启动本地通知,这非常有效。 我已经有一些有限的成功,而屏幕被locking(和应用程序处于非活动状态) 我使用了以下方法: 当屏幕被locking时,每秒用后台任务运行NSTimer 。 我设法保持应用程序超过10分钟的最大值,但我无法播放声音。 当时间到了 使用AVAudioPlayer播放1秒无声的声音。 当声音结束时,重播声音并检查应用程序是否处于非活动(locking屏幕)状态。 如果处于locking屏幕状态,则需要播放闹钟。 这里的问题是我必须使用 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 以便在后台继续更新歌曲。 该方法将在音乐控件中显示“唤醒”,并会停止正在播放的任何我们想要避免的音乐。 #1和#2的组合。 当应用程序打开无限重复播放沉默的声音。 当屏幕被locking时,触发定时器来检查是否有时间发出警报。 当需要播放闹钟时,将无声的声音切换到闹钟声。 该系统最终将强制closures该应用程序 已经帮助但尚未解决我的问题的相关知识: 如何在静音模式下开始播放audio并locking在iOS 6中? iOS 5深度睡眠预防 当应用程序处于后台时,继续中断代码的执行 如何播放背景iPhone SDK中的音乐 总结:当屏幕被locking,并在应用程序在前台,我无法防止过程中10分钟后被杀死。 UPDATE 我结束了使用https://github.com/mruegenberg/MMPDeepSleepPreventer ,让我发挥10分钟后的声音。 但是,这样吃起来就像疯了一样。 我需要find一个更有效的解决scheme。 更新2 我从应用程序商店下载了一些http://marcopeluso.com/应用程序。 他是深度睡眠预防者的创造者。 我下载了他的一些应用程序,并进行了一些仪器testing,看到他的应用程序没有像我的应用程序那样耗尽电量(据他的博客声称每小时大概为2.5%)。 我非常肯定,我需要优化我的应用程序,电池消耗问题将消失,我的问题将得到解决! 更新3我结束了使用https://github.com/mruegenberg/MMPDeepSleepPreventer 我在它自己的单独的xCode项目中运行它,当应用程序在后台时它只使用0.5%的cpu。 事实certificate,这是我的应用程序吸吮CPU。 所以它现在运作良好:)

如果设备自动睡眠/自动locking,有没有办法让Airplay运行?

当通过Airplay将video从iPhone(或任何iOS设备)stream式传输到电视机时,只要设备从非活动状态进入hibernate状态,stream就会停止。 此刻,我禁用了睡眠定时器,以便设备不会自动睡眠,但有没有更好的解决scheme呢? 是否设置AVPlayer.externalPlaybackActive足以让操作系统知道屏幕closures时继续播放? 如果没有,即使设备closures了屏幕,是否有其他方法可以保持Airplay的运行?

重入读/写locking结构?

我是一名经验丰富的.NET程序员,用iOS来伸展我的双腿。 在.NET中我最喜欢的multithreading构造是ReaderWriterLock 。 它允许多个读者或一个作家。 我真的在iOS中缺less的一个特点是锁是可重入的。 也就是说, 读者线程只要释放相同的次数就可以多次获取读锁 。 同样,只要单个写入器线程释放locking数量相同,就可以多次获取locking。 我研究过iOS框架,并没有一个构造似乎提供了相同的支持,包括重入性。 我也看了一下pthread库。 我发现了rwlock,但是它不允许重新进入。 iOS上有什么允许重入读写锁的东西?

在事务内调用

如果我在从服务中加载数据的同时closuresiPad应用程序,应用程序将closures,但是会立即再次打开,而无需执行任何操作。 在这一点上,我无能为力。 我无法closures应用程序,我无法与应用程序或设备进行交互。 再次使用设备的唯一方法是重新启动它。 该应用程序不会崩溃,它只是禁用该设备。 发生这种情况时,以下行在applicationWillResignActive和applicationDidEnterBackground之后立即出现在控制台中三次: +[CATransaction synchronize] called within transaction 如果应用程序崩溃几乎可以,但是设备完全无用的事实是一个巨大的问题。 如果我可以拦截这个bug或以某种方式检测CATransaction引发这个问题,那就没事了。 有任何想法吗?