Tag: iphone

iPhone – 了解iPhone旋转

我正在墙上试图理解这一点。 看下面的图片。 假设我有一台iPhone搁在桌子上。 此时,通过核心运动的旋转读数为偏航,滚转和俯仰的0,0,0(图A)。 然后我把它翻转90度。 现在它正坐在桌子上,左边是主button。 现在它读取0,0,0(图片B)。 现在我偏航了180度。 现在坐在桌子右边。 主页button在左边。 现在它读取180,0,0(图片C)。 如果我现在滚动它,问题来了。 假设我滚动-45度。 我应该阅读180,-45,0,但是我正在阅读180,-45,180? (图D)。 这是为什么? 如果我从来没有改变过,为什么它给了我一个球场的价值? 如何能在其他angular度的旋转影响? 谢谢。

了解iPhone上的内存消耗

我正在使用OpenGL ES开发2D iPhone游戏,并且一直保持24 MB的内存限制 – 我的应用程序不断崩溃,出现错误代码101.我试图很难find内存的位置,但乐器中的数字仍然很多比我所期望的要大 我用Memory Monitor,Object Alloc,Leaks和OpenGL ES仪器运行了这个应用程序。 当应用程序被加载时,空闲的物理内存从37 MB降低到23 MB,Object Alloc约为7 MB,泄漏显示两个或三个泄漏几个字节,Gart对象大小约为5 MB,内存监视器显示应用程序占用大约14 MB的实际内存。 我感到困惑的是记忆力在哪里 – 当我深入研究Object Allocations时,大部分的记忆都在纹理中,完全如我所料。 但是我自己的纹理分配计数器和Gart对象大小都认为纹理应该占用5MB左右的空间。 我不知道分配任何值得一提的东西,而对象Alloc也同意。 记忆在哪里? (如果这还不够,我很乐意提供更多细节。) 更新:我真的试图find我可以分配这么多的内存,但没有结果。 什么驱使我疯狂是对象分配(〜7 MB)和实际内存使用情况(如内存监视器(〜14 MB)所示)之间的差异。 即使存在大量的泄漏或者大量的记忆,我仍然忘记了,这个应该仍然出现在对象分配中 ,不是吗? 我已经尝试了通常的 嫌疑犯 ,即。 UIImage的caching,但没有帮助。 有没有一种方法可以逐行跟踪内存使用“debugging器风格”,观察每条语句对内存使用情况的影响? 到目前为止我发现的是: 我真的正在使用那么多的记忆。 测量真正的内存消耗并不容易,但经过大量计算,我认为内存消耗真的很高。 我的错。 我发现没有简单的方法来衡量使用的内存。 内存监视器的号码是准确的(这些是真正重要的数字),但内存监视器不能告诉你内存到底在哪里。 Object Alloc工具几乎无用于跟踪真实的内存使用情况。 当我创build一个纹理时,分配的内存计数器会上升一段时间(将纹理读入内存),然后下降(将纹理数据传递给OpenGL,释放)。 这是可以的,但并不总是会发生 – 即使将纹理传递给OpenGL并从“我的”内存中释放,有时内存使用率仍然很高。 这意味着Object Alloc工具分配的内存总量小于实际的内存总消耗量,但是大于实际的消耗减去纹理( real – textures < object […]

隐藏/显示UITableViewCell附件披露指标

我试图从核心数据加载数据(string),如果该行中的值等于“ – ”配件披露指标将隐藏和SelectionStyleNone。 我尝试过,但没有成功 if (entity.value == @"–"){ cell.selectionStyle = UITableViewCellSelectionStyleNone; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } 要么 NSString *this = entity.value; if (this == @"–") { cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.selectionStyle = UITableViewCellSelectionStyleNone; } 两个都不工作…但是这可能吗? 谢谢

为什么在使用ARC + NSZombieEnabled时不会释放对象

我将我的应用程序转换为ARC,并注意到在视图控制器被释放时,在我的一个视图控制器中分配的一个对象没有被解除分配。 花了一段时间才弄明白为什么。 我在debugging过程中为我的项目启用了“僵尸对象”,事实certificate这是事实。 考虑下面的应用程序逻辑: 1)用户调用RootViewController中的动作,使SecondaryViewController被创build并通过presentModalViewController:animated呈现presentModalViewController:animated 。 2) SecondaryViewController包含一个ActionsController ,它是一个NSObject子类。 3) ActionsController在初始化时通过NSNotificationCenter观察一个通知,当它被解除分配时停止观察。 4)用户closuresSecondaryViewController返回到RootViewController 。 启用僵尸对象closures,上述工作正常,所有的对象被释放。 使用ActionsController上的启用僵尸对象不会解除分配,即使SecondaryViewController被释放。 这导致我的应用程序b / c中的问题NSNotificationCenter继续发送通知给ActionsController和结果处理程序导致应用程序崩溃。 我创build了一个简单的应用程序来说明这个在https://github.com/xjones/XJARCTestApp 。 查看与启用僵尸对象控制台日志开/关来validation这一点。 问题(S) 这是启用僵尸对象的正确行为? 我应该如何实现这种types的逻辑来消除这个问题。 我想继续使用启用僵尸对象。 编辑#1:根据凯文的build议,我已经提交给苹果和openradar在http://openradar.appspot.com/10537635 。 编辑#2:澄清一个很好的答案 首先,我是一名经验丰富的iOS开发人员,我完全了解ARC,僵尸对象等。如果我错过了某些东西,当然,我很欣赏任何照明。 其次,对于此特定崩溃的解决方法是,当secondaryViewController被释放时,将observer作为观察者移除。 我也发现,如果我明确地设置actionsController actionsController = nil当secondaryViewController dealloc'ed它将被dealloc'ed。 这两个都不是很好的解决方法B / C他们实际上要求您使用ARC,但代码,如果您不使用ARC(例如显式dealloc中的零iVars)。 一个特定的解决scheme也无助于确定何时这将成为其他控制器中的问题,因此开发人员可以确定何时/如何解决此问题。 一个好的答案可以解释如何确定性地知道在使用ARC + NSZombieEnabled时需要对某个对象做些特殊的事情,这样就可以解决这个具体的例子,并且也可以将整个项目作为一个整体应用,而不用再为其他类似项目问题。 完全有可能没有好的答案,因为这可能是XCode中的一个错误。 感谢所有!

iOS推送通知 – 当您点击应用程序图标而不是通知时如何获取通知数据

类似于这个问题: 如何访问applicationDidBecomeActive上的远程推送通知数据? 但是不同之处在于,如何在applicationDidBecomeActive访问通知数据,以及是否单击了应用程序图标而不是推送通知。 stream程如下:如果点击push notification则会触发didReceiveRemoteNotification ,但是如果您单击原始应用程序图标,则只会触发applicationDidBecomeActive并且不会调用didReceiveRemoteNotification 。 我正在寻找后面的情况,所以我如何访问推送通知数据。 (这两种情况下,假设应用程序在后台,并没有被杀害。)

当iOS 7中显示工作表/提醒时,如何在自定义绘制的控件上将tintColor设置为灰色?

在iOS 7中,当呈现UIActionSheet时,系统控制所有将其tintColor为灰色的animation。 当表被解雇时,他们回生。 我有一些使用自定义背景图像或使用tint颜色的drawRect实现的控件,我希望它们像系统控件一样为这个更改设置animation。 苹果添加- (void)tintColorDidChange UIView ,但在这种方法重新绘制与新的颜色不animation的变化 – 它只是立即从全彩色切换到全灰色,这看起来不好,当其他周围的系统控制是animation。 我怎样才能使我的自定义绘制的控制animation像苹果的tintColor过渡?

在UITableViewCell中延迟加载图像

我有我的UITableView 50个自定义单元格。 我想显示一个图像和一个标签在单元格中,我从URL获取图像。 我想做一个懒惰的图像加载,以便在加载图像时UI不会冻结。 我试图在单独的线程获取图像,但我必须加载每个图像,每次细胞变得可见(否则重用单元格显示旧图像) 像Facebook这样的应用程序只能为当前可见的单元格加载图像,一旦加载图像,就不会再次加载图像。 有人可以告诉我如何复制这种行为。 谢谢。 编辑 尝试将图像caching在NSMutableDictionary对象中会在用户快速滚动时产生问题。 只有在滚动完全停止并清除caching内存警告时,我才能获取图像。 但是,应用程序总是会得到一个内存警告(由于caching图像的大小),并在重新加载前清除caching。 如果滚动速度非常快,就会崩溃。 欢迎任何其他build议

在iPhone应用程序中乱七八糟

我可以在iPhone模拟器中testingFlurry SDK,还是应该在设备上testing它? 我需要等几个小时才能看到仪表板中的testing代码(Flurrytesting)的统计数据,还是实时显示? 我的问题是当我testing我没有看到仪表板中的任何东西(我创build了一个事件,所有的事件都在仪表板中创build)。

iPhone Safari不会自动缩小纵向 – >横向 – >纵向

我有一个非常简单的HTML页面,这个META标签用于iPhone: <meta name="viewport" content="height=device-height,width=device-width,initial-scale=1.0,user-scalable=no" /> 使用iPhone Safari,当页面以纵向模式加载时,它看起来很好,宽度适合屏幕。 当我将iPhone旋转到横向模式时,网页将自动resize以适应横向宽度。 好,这是我想要的。 但是,当我从风景旋转回来,页面不调整为适应像以前的肖像宽度。 它保持在横向宽度。 我希望iPhone自动将其设置回正确的宽度,就像横向模式一样。 我不认为这应该涉及方向倾听者,因为这一切都是自动完成的,对于不同的模式我没有任何特别的造型。 为什么iPhone不能以纵向模式重新调整网页的大小? 我该如何解决? UPDATE 我设法让iPhone自动resize,但有一个奇怪的现象,只有在偶数轮换之后…非常奇怪。 我使用这个META标签: <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 这是我必须做的,以实现自动resize: 1.在纵向加载 – >看起来不错。 2.旋转到横向 – >resize以适应屏幕。 3.旋转回肖像 – >不resize。 4.旋转到风景 – >仍然在风景大小。 5.旋转到肖像 – >resize以适应肖像画面。 有人可以解释这种行为? 我仍然想知道如何解决这个问题,并感谢任何帮助。 谢谢! 汤姆。

Itunes Connect将桌面显示为ipad应用程序的平台

今天我注意到,iTunes Connect的销售和趋势部分有一个新的外观和一些新的function,但似乎我公司的应用程序(专为iPad / iPhone)在桌面上下载? 有谁知道“桌面”可能意味着什么iOS应用程序?