具有“位置”后台模式的iOS长时间运行后台计时器

我想实现长时间运行的后台定时器,定时向服务器发送用户的位置信息。 为此,我为UIBackgroundModes设置了location模式,并在应用程序转到后台时调用beginBackgroundTaskWithExpirationHandler 。 而对于CLLocationManager ,我使用startUpdatingLocation方法(不想使用重大更改,因为我需要高精度的位置)。 但是在应用程序转到后台大约26分钟后,停止向服务器发送位置。 但该应用程序不会崩溃,所以在我把应用程序放到前台后,它可以恢复它的计时器。 26分钟是从实验,与iOS 6.1,iPhone 5。 这里有一些问题, 我不明白为什么在26分钟不到10分钟后暂停,这被称为后台任务的时间限制。 在16分钟之前, backgroundTimeRemaining方法返回double最大值。 但16分钟后从600下降,10分钟后暂停后台任务。 我已经试过在期满处理程序里面调用beginBackgroundTaskWithExpirationHandler ,但是没用。 如果有谁对这个问题有线索,将不胜感激。

使用电池供电的iBeacon设备(主要是kontakt io)的电池级别?

我正在尝试通过我目前正在使用的iOS应用程序来查找从我的信标访问电池电量的方法。 我正在使用Kontakt的iBeacon设备。 我浏览了Estimote iOS SDK,他们提供了一个方法来实现这一点。 我想知道它是否完全能够访问原始的信标包并手动提取数据,因为我知道信标包的结构和信息在那里。 有关如何通过这里提到的方法或任何其他方式来实现这个想法? 多谢你们。

使用与@“some string”的优点和缺点

我想比较以下简单的作业: … @property(nonatomic,retain) UITextField *textField; … self.textField.text = @"some string"; self.textField.text = [NSString stringWithString:@"some string"]; self.textField.text = [NSString stringWithFormat:@"some string"]; 其中textField是UITextField , text属性是NSString 。 当然,他们都工作。 我知道使用参数时最后两个的区别。 但是可以说我们只对这个用法感兴趣。 问题: 为了做这样的任务,为什么我不应该总是使用第一个? 比较后两者,这两者的编译和/或运行时间是否有区别? 而为什么我应该使用stringWithString:如果不是呢?

优先使用属性访问器或KVC样式来访问Core Data属性

我已经阅读了Marcus S. Zarra的iOS数据存储和pipe理iOS OS X和iCloud (第二版)的iOS相关章节,以获得巨大收益。 但是,我想知道一个方面,这本书提出了一个与我自己不同的风格。 本书的示例通过使用KVC访问NSManagedObject的属性和关系(例如[recipe valueForKey: @"name"] )。 对于如何定义属性访问器(例如在recipe.name使用),有(仅)两个简单的解释。 这似乎暗示了KVC有利于财产访问者的明确build议。 我一般喜欢属性访问器,例如,因为他们防范错误导致的错误(例如[recipe valueForKey: @"nam"] ),因为Xcode可以为我生成它们的源代码( Editor | Create NSManagedObject Subclass )。 我的问题是这样的:有什么技术上的原因,为什么一个人应该使用KVC,而不是一般的财产访问或风格?

iOS Swift:无法将值types“__NSCFNumber”转换为“NSString”

我从我的Firebase数据库(JSON数据库)中检索数字值,然后将此数字显示到textField ,但是当我尝试显示该数字时出现此错误。 无法将值types“__NSCFNumber”转换为“NSString” 我怎样才能正确地将检索到的值转换为一个string,考虑到这个值可能会改变之间的string和数字,当我检索它。 这是我的代码: let quantity = child.childSnapshot(forPath: "quantity").value // Get value from Firebase // Check if the quantity exists, then add to object as string. if (!(quantity is NSNull) && ((quantity as! String) != "")) { newDetail.setQuantity(quantity: quantity as! String) }

Watchkit&Realm 0.92.3

Xcode 6.3和iOS10.10.3下新的Realm-DB(realm 0.92.3)的Swift集成基本上适用于iPhone(不适用于Apple Watch)。 Watchkit(即Apple-Watch)下的同一个领域框架的集成工作还没有完成。 RealmSwift.framework被集成(拖入)embedded式二进制文件,如下面的这个和这里所描述的。 看下面的截图: 使用模拟器运行Watchkit-App时,会发生以下错误: dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /Users/XXX/Library/Developer/CoreSimulator/Devices/3FE99-9-4C4C2/data/Containers/Bundle/Application/8B4-DF19F34-222973/MyApp.app/PlugIns/MyApp WatchKit Extension.appex/MyApp WatchKit Extension Reason: image not found (lldb) 还有什么问题呢? 主应用程序的框架searchpath被设置。 MyApp Watchkit扩展程序和MyApp Watchkit应用程序没有设置。 设置它们不会改变上述错误。 还有什么缺失?

低fps快速操场?

我在我的Mac上制作一个SpriteKit游戏书。 代码很长,我不知道游乐场的function。 fps实际上很低(可能低于15fps)。 这是游乐场的限制吗? 如果我把操场书发给我的iPad Pro,这个限制是否类似? 有没有办法来诊断游戏机的低fps,这可能是由于我的电脑上打开了其他应用程序? 编辑:埃里克是正确的,在iPad上的游乐场是非常不同的和更快。 低fps的最佳解决scheme是将辅助代码移动到Sources文件夹,以便只编译一次。

警告,同时validationiOS应用程序

我只是移动上传我的第一个应用程序。我使用xcode 7,swift app.whilevalidation我有这样的消息: 我也谷歌关于这个问题。在这个堆叠stream也我看到了一些解决scheme,它只是一个警告。但是当我移动到iTunes等待那个+button来build立我的应用程序,并提交。 我无法在iTunes中看到该button。 我也删除我的档案,并重新档案,并等待一个小时。现在我din看到+button来添加我的build立现在我该怎么做。Kindl给一些土壤预先感谢! 更新: 在这里validation一个+button之后会显示添加。只有我才能得到

快速的UICellView单元格布局

我正在尝试使用UICollectionView来创build一个网格,用户可以通过y单元格(在文本框中input)将其设置为x个单元格,同时在屏幕上占用相同的宽度。 我已经能够创build一个包含正确数量的单元格的网格视图,但是这些网格视图的布局还不正确,即input5乘以7将会给出35个单元格,而不是在5单元格中按7单元格布局。 这是迄今为止的代码。 MyCollectionViewCell.swift导入UIKit class MyCollectionViewCell: UICollectionViewCell { @IBOutlet var cellLabel: UILabel! } CreateNewProject.swift class CreateNewProject : UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UITextFieldDelegate { @IBOutlet var widthTextBox: UITextField! @IBOutlet var lengthTextBox: UITextField! @IBOutlet var myCollection: UICollectionView! let reuseIdentifier = "cell" // also enter this string as the cell identifier in the storyboard @IBAction func updateView(sender: AnyObject) { […]

滚动closures屏幕时,UITableViewCellAccessory消失

我有一个UITableView充满了对象。 在didSelectRowAtIndexPath方法中,我有一个UITableViewCellAccessoryCheckmark当行被选中时出现,并在未选中时消失。 下面是didSelectRowAtIndexPath方法的代码: – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:NO]; UITableViewCell *curCell = [beerTable cellForRowAtIndexPath:indexPath]; if (curCell.accessoryType == UITableViewCellAccessoryCheckmark) { [curCell setAccessoryType:UITableViewCellAccessoryNone]; compareCount = (compareCount – 1); if (tableView == [[self searchDisplayController] searchResultsTableView]) { NSString *objBeer = [searchResults objectAtIndex:indexPath.row]; [compareBeers removeObject:[searchResults objectAtIndex:indexPath.row]]; [compareCarbs removeObject:[carbAmount objectAtIndex:[beerNames indexOfObject:objBeer]]]; } else { [compareBeers removeObject:[beerNames objectAtIndex:indexPath.row]]; [compareCarbs […]