小编kin*_*apo的帖子

外部记录文件中iOS存储的核心数据

第一次在这里问一个问题,如果我没有提供足够的信息,请放轻松.基本上我的iOS应用程序的一部分允许用户拍摄将存储​​在Core Data存储中的图片.该属性是Transformable类型,我创建了一个NSManagedObject子类,我只是用它来将其image属性设置为用户提供的新图像.

我知道在Core Data中存储大文件是一个坏主意,这就是为什么当我看到Core Data实体中的image属性下的"Store in External Record File"选项时,我很兴奋.然而,我的应用程序性能说不然,在iPhone 5上花费几秒钟只加载一些图像(我知道听起来不是很多时间,但考虑到iPhone 5有多强大,旧设备可能需要更长的时间相同的数据).

我环顾四周,有人说Store in External Record File选项仅适用于OS X环境,即使它在iOS应用程序中可用.但是,我也在Apple的"iOS 5中的新功能"文档中看到了这一点(它是核心数据下的最后一项,接近结尾):

托管对象支持两个重要的新功能:有序关系和属性值的外部存储.如果指定托管对象属性的值可以存储为外部记录,则Core Data会根据每个值来决定是将数据直接保存在数据库中还是将URL存储到它管理的单独文件中为了你.

所以我的问题是,谁是对的?苹果公司在为iOS应用程序提供此选项时犯了错误,除非您使用的是Mac,否则它实际上什么也没做,或者它实际上是做了什么而且我没有以正确的方式配置它,或者是它做它应该做的事情,而且表现还不错?

我已经看到一些指南解释如何将大文件(如图像)存储为文件,并将URL保存在Core Data存储中,但由于这实际上是这个新选项正在做的,或者可能应该这样做,我不确定遵循这些指南是否会有所帮助.

如果之前有人问我,我真的很抱歉.通常情况下,我可以自己解决这个问题,但Core Data对我来说是全新的,我仍然不确定我是如何通过初始设置吱吱作响的.感谢您提供的任何帮助!

core-data ios

22
推荐指数
1
解决办法
5524
查看次数

SpriteKit 物理在不同屏幕分辨率上不一致

我正在开发的 SpriteKit 游戏遇到了一些问题。我正在尝试做一个平台游戏风格的游戏,玩家点击屏幕让角色跳跃。我正在通过以下方式实现这一目标:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // reset the velocity each jump, so that a constant impulse is always applied
    self.player.physicsBody.velocity = CGVectorMake(0, 0);       

    // jump the player up
    [self.player.physicsBody applyImpulse:CGVectorMake(0, PLAYER_JUMP_HEIGHT)];
}
Run Code Online (Sandbox Code Playgroud)

PLAYER_JUMP_HEIGHT只是一个常数。我还设置了具有恒定质量的播放器。

这在 iPad 模拟器上非常有效,这是我进行大部分初始测试的地方。然而,在调整我的代码以适应设备分辨率(对于手机等)之后,我的物理性能似乎非常差,尤其是在 iPhone 4S 模拟器上。同样的冲动现在让玩家跳得非常高,而且他们似乎也更快地从平台等物体上掉下来,比以前更像线性曲线。

我通过首先设置场景的缩放模式来缩放我的场景以适应多个设备:

scene.scaleMode = SKSceneScaleModeResizeFill;
Run Code Online (Sandbox Code Playgroud)

我还想出了一种方法,通过将当前设备的分辨率与 iPad 的分辨率进行比较,然后除以得到一个比例因子来乘以所有内容,从而缩放游戏中的其他所有内容。因此,在 iPad 屏幕宽度为 2048 的情况下,如果我在 iPhone 4S 上运行,则比例因子将为 960 / 2048 = 0.46。通过这种方式,我可以使用一组常量来设计游戏,这些常量可以跨所有设备分辨率进行缩放,而不会出现其他缩放模式的裁剪或其他缩放问题。

我对这可能是什么感到非常困惑。我试过将玩家质量和跳跃高度乘以屏幕比例因子,在所有可能的组合中,都无济于事。我还尝试弄乱了physicsWorld 的重力和速度,这也不起作用。如果有人有处理这个问题的经验并愿意分享,任何帮助将不胜感激。谢谢!

objective-c screen-resolution game-physics ios sprite-kit

3
推荐指数
1
解决办法
647
查看次数