概览我的公司要求我发布一个可以每两小时检查一次设备位置的应用程序。该应用程序将通过TCP/IP套接字将这些位置数据发送到我的服务器,然后根据这些数据接收相应的信息(直接通过相同的TCP/IP套接字)。所以我不试图让我的应用程序持续在后台模式下运行(实际上,这似乎是iOS中的热门话题,而且它也不适合我的项目)。问题为了可靠,实现这一目标的最佳做法是什么?所以,我想知道:由于我的应用已暂停(=不活动),Apple是否允许在被didUpdateToLocation唤醒时打开套接字以发送位置?我需要多长时间才能通过套接字执行发送/接收任务?我是否应该使用beginBackgroundTaskW
我们正在开发一个内部应用程序,它可以访问我们希望离线使用的大量图像数据。简而言之,在第一次启动时,该应用程序将从服务器(大约3Gb)提取数据,然后仅在用户要求更新时再次获取数据。我只是想知道持久性本地存储是否有任何大小限制?请再次注意,这是一个供大约100名用户使用的内部应用程序,他们靠近带有WiFi的服务器,所有设备都是iOS6、视网膜(基本上是新的)。更新每年只会进行几次,我们甚至可能对其进行编码,以便只下载更改内容。 最佳答案 您的应用可以存储的数据量没有限制。我们的应用可以毫无问题地提取超过10GB的数据。您唯一需要注意的是
如果我想以编程方式初始化View,应该在viewcontroller生命周期的哪个位置进行初始化?最初的直觉是loadView。然而,在这里,我们还没有View本身的框架(计算View的大小/位置所必需的)。viewDidLoad也是如此。下一个直觉是viewWillAppear——在这里我们(终于)保证了View的框架。但是,这有可能在整个vc生命周期中被多次调用。viewDidAppear等也是如此......最后,我找到了viewWillLayoutSubviews。这适用于大多数静态布局的初始化-然而,每当任何View移动时都会再次调用它(与viewWillAppear相同的问
我正在创建一个OpenGL游戏,它将使用纹理图集来加载大量艺术品。纹理图集很好,因为您加载图像一次,然后从中剪切Sprite。您节省了从磁盘加载所有文件所需的时间(如果它们是独立的)并且您节省了存储图像的内存。但在我看来,超过一定程度,这种好处就不会那么真实了,对吧?我的想法是,如果纹理图集非常大,您将浪费大量内存来存储它,并且可能不会经常使用其中的某些Sprite。最好的方法是什么?分成多个Sprite?关卡Sprite还是什么?无论如何,我的问题是:对应于最大图集的像素大小是多少才应该被视为一种优势? 最佳答案 最新的iOS设备
也许有人可以给我指出正确的方向,在这里,因为我一直在用头撞墙。让我全神贯注于SpriteKit和UIKit互操作性的主要问题。我的游戏从一个表格View开始,它将所有玩家的游戏保存在单独的单元格中(与friend游戏一样)。当点击一个单元格时,我会加载一个SKView,它会显示一个SKScene,其中包含预先从Parse.com下载的所有相关游戏数据。问题是,由于没有更好的术语,我不知道如何让场景“更新”所有当前的游戏数据。正如预期的那样,呈现的场景仅显示背景图像和一些其他图像,但屏幕上应该显示的Sprite却没有。相反,它是我最后一次从SKScene中滑出时出现在屏幕上的Sprite
在iOS7中,用户可以旋转MKMapView(就像在map应用中一样)。我有叠加层,要确定是否可以显示它们,我需要计算缩放比例。在iOS6中,我曾经这样做:MKZoomScalezoomScale=self.mapView.bounds.size.width/self.mapView.visibleMapRect.size.width;问题是当用户旋转map时计算结果会改变,因为实际的缩放比例应该是相同的(叠加图block的大小是相同的,只是旋转)。所以我的问题如下:如何计算用户旋转map时不会改变的真实缩放比例?如果我有旋转角度,我可以纠正“偏差”,但我无法在MKMapView中找到
我这样定义一个新类:@interfaceSomeClass:NSObject{intwide;}-(id)initWithWide:(int)value;@end当我像这样实现initWithWide方法时:@implementationSomeClass-(id)initWithWide:(int)value{self=[superinit];wide=value;}@endXcode向我显示错误:"Expectedidentifieror'('"。当我将“wide”变量名更改为else时,没问题。所以看起来我不能使用“wide"作为Objective-C中的变量名?重命名为wide
关于何时使用UIViewContoller与UIView,有一些很好的答案。例如here和here.一般要点是应该使用UIVIewController来控制全屏数据,因为它旨在处理旋转。因为onlythenewest一次屏幕上应该只有一个UIViewController将收到轮换发生的通知。为了忠于MVC范例,您的业务逻辑应该存在于UIViewController中,而只有显示和交互逻辑应该存在于UIView中。大概业务逻辑与整个屏幕上的内容有关。我的问题是,鉴于此,我如何构建一个在多个顶级View之间进行左右分页的应用程序?我想创建一个包含多个UITableView的界面,其中包含一
我正在练习自动布局并学习动画约束。我的第一个问题是。如果我动态添加View,那么将它们的约束也动态添加到父View似乎很麻烦。是否有任何干净的方法来实现可以以编程方式添加和删除View的灵活布局?或者这是否意味着我应该为我想要完成的事情想一个更简单的解决方案?第二个问题。我在代码中创建了两个View和一些约束。我只是想调整加载时第一个View的高度约束,使其变短,第二个View将相应地向上移动。这里是一些代码:first=[[UIViewalloc]initWithFrame:CGRectZero];[firstsetBackgroundColor:[UIColorblueColor]
我正在使用UIBezierPath类来创建绘图应用程序。我正在开发橡皮擦工具;但是,似乎没有任何方法可以从贝塞尔曲线路径中删除点(只有removeAllPoints)。我应该如何进行删除? 最佳答案 存储点到NSMutableArray,如果用户想删除点,从数组重新创建整个路径。没有从UIBezierPath或CGPath中删除点的方法。 关于ios-从UIBezierPath中移除点,我们在StackOverflow上找到一个类似的问题: https://s