小编hds*_*evi的帖子

将自定义 GKComponent 添加到 Xcode SpriteKit 场景编辑器中的实体会将 GKScene.rootNode 设置为 nil

当我CustomComponent (GKComponent)在 Xcode SpriteKit 场景编辑器中向实体添加 a并尝试.sks使用 a加载该文件时GKScene.initGKScene.rootNode未设置。更奇怪的是,这仅发生在 iOS 13 上,而不发生在 iOS 12 上。

我有一个小精灵套件 github 项目设置,它清楚地演示了这个问题。只需在 iOS 13 模拟器上运行该应用程序即可重现该问题。https://github.com/hdsenevi/answers-gkscene-rootnode-nil-bug

如果我CustomComponent从 SpriteKit 场景编辑器实体/精灵中删除,那么它运行良好。即:加载SKSceneGKScene.rootNode

  1. 从 Xcode SpriteKit 场景编辑器添加 GKComponents 时是否需要进行其他特殊修改?
  2. 我在这里遗漏了一些明显的东西吗?
  3. 为什么这段代码可以在 iOS 12 而不是 iOS 13 上正常工作?
  4. 在 iOS 13 中 SpriteKit 的功能是否与此有关?

以供参考

import UIKit
import SpriteKit
import GameplayKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Load 'GameScene.sks' as a GKScene. This provides …
Run Code Online (Sandbox Code Playgroud)

xcode sprite-kit swift gameplay-kit ios13

7
推荐指数
2
解决办法
585
查看次数

Swift可选的初始化

这是我的理解

var perhapsInt : Int?
Run Code Online (Sandbox Code Playgroud)

这会自动设置为一个.None值.以下代码片段确认(没有编译器错误)

class MyClass {
    var num1: Int = 0
    var num2: Int?

    init(num1: Int) {
        self.num1 = num1
    }
}

var newClass = MyClass(num1: 5)
newClass.num1 // prints '5'
newClass.num2 // prints 'nil'
Run Code Online (Sandbox Code Playgroud)

我对可选的初始化过程的理解是否正确?如果是这样,为什么当我换num2到时这不起作用let.

我期待nil使用时可选项默认的相同行为let.我在这里错过了什么吗?

class MyClass {
    var num1: Int = 0
    let num2: Int?

    init(num1: Int) {
        self.num1 = num1
        // compiler error : return from initialiser without initialising all stored properties 
    } …
Run Code Online (Sandbox Code Playgroud)

initialization init optional optional-variables swift

5
推荐指数
1
解决办法
2551
查看次数

React Navigation Stack Navigator默认阴影样式

我正在使用React Navigation在ReactNative中构建基于标签栏的应用程序类型.

  • "本土反应":"0.44.0",
  • "react-navigation":"^ 1.0.0-beta.9",

我把导航部分固定下来并正常工作.但是关于样式,我在标签栏内的StackNavigator(导航控制器)上看到一个阴影.请参考下图.

在此输入图像描述

我不习惯在本机iOS应用程序上看到这种影子(我是一个尝试RN的iOS移动开发者)

经过进一步调查,我发现在ReactNavigation 中'Card.js'中指定了' shadow'属性.所以我设法解决了该问题在一些更重要的传球cardStyle像这样

cardStyle:{shadowColor:'transparent'}

综上所述,我有两个问题

问题1 为什么这是默认的行为/样式?

为了调试这个问题,我决定在Xcode中快速查看调试,发现'shadow'没有显示在那里. 在此输入图像描述

问题2 为什么会发生这种情况?由于RN应用程序本质上是一个本机应用程序(在本例中为原生iOS),是不是查看调试调试这些视图相关问题的可靠方法?

ios react-native react-native-android react-native-ios react-navigation

5
推荐指数
0
解决办法
1136
查看次数

用破折号反应字符串的原生文本分词策略

设置

react: 16.6.0-alpha.8af6728
react-native: 0.57.4
Run Code Online (Sandbox Code Playgroud)

问题

Text 组件中的断字不会按照应用程序设计的方式处理带破折号的字符串。考虑到破折号,我想对整个单词进行自动换行。在换行时,整个带破折号的字符串应被视为一个单词。但是 flexbox 没有。

代码

<TouchableOpacity style={{ width: 250, backgroundColor: 'skyblue' }}>
    <Text style={styles.welcome}>This is a sample of text-with-dash incorrectly word breaking</Text>
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)

Restult 看起来像这样:

在此处输入图片说明

但我希望它像这样结束(文本带破折号在单独的行上):

在此处输入图片说明

问题是我从在线 CMS 获取字符串,并且想要一个 flexbox 样式解决方案来解决这个问题。可能存在带有破折号的字符串可能会在一行中结束的情况,因此在这些情况下,我不想要原因的自动换行。

text text-styling word-wrap flexbox react-native

5
推荐指数
1
解决办法
9311
查看次数

从代码iOS中删除相机胶卷中的图像

有没有办法在我的应用程序没有创建的照片应用程序中删除相机胶卷中的图像(和视频).我知道您无法从资产库中删除您的应用未创建的内容.但这个应用程序不在应用程序商店.它位于自助服务终端类型的环境中.所以我可以使用私有API.

那么有没有办法使用苹果公司不会批准应用程序商店的私有API来实现这一点,但是可以适用于我的情况.

谢谢.

image ios alassetlibrary

4
推荐指数
1
解决办法
6789
查看次数

Zenject 全局绑定

我很清楚这可能不是提出 Zenject 问题的最佳地点。我已经在 Zenject 谷歌群组页面上发布了同样的问题。我在这里发帖是想在这里的人(不在谷歌群组中)可能会帮助我。

我有一个关于 Zenject 全局绑定的问题。

目前我的 AR 应用有几个不同的屏幕(保存为场景)。每个场景都可以单独运行,这样我就可以将其划分得很清楚。当我按下“Screen1”上的按钮时,它会加载“Screen2”等等。我正在使用一个非常基本的 AppDelegate,它包含一个 NavigationController 类,该类处理所有的 UGUI 转换,因此它可以说是一个普通的基于 iOS 导航的应用程序。我在我拥有的所有安装程序上都将 AppDelegate 作为单例注入,但是由于各个屏幕(场景)都有单独的 CompositionRoots,因此在全局范围内它们不会作为单例注入。

有没有办法做到这一点。在整个应用程序中进行单例注入但具有不同的组合根?

如果没有,如何使用全局组合根?我已按照指南中的说明创建全局组合根并将安装程序添加为预制件等等。我也从场景中删除了安装程序。但是当我玩时什么也没有发生。我在这里遗漏了一些明显的东西。

提前致谢。

unity-game-engine

2
推荐指数
1
解决办法
3271
查看次数

何时清除iPhone应用缓存?

我正在开发一个应用程序,允许用户将语音(以及其他内容)记录到应用程序的Documents目录中.但是当我录制语音时,我正在录制到应用程序的缓存目录,然后在用户说"好了,保存这个"之后,然后我将它复制到Documents目录.到目前为止所有这些工作.但是,如果我尝试删除缓存中的数据文件,或者当我尝试移动它时,我会遇到问题.

所以我的问题是,我是否应该将数据保留在缓存中以便iOS处理它,或者我是否需要手动删除缓存中的文件.如果是这样,我将如何去做呢.这是我到目前为止的代码(不起作用)

    NSFileManager *fm = [NSFileManager defaultManager];
    NSString *directory = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
    NSError *error = nil;
    BOOL success = [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", directory, currentEntry.audioFileURL] error:&error];
    if (!success || error) {
        // it failed.
        NSLog(@"it failed to delete!!! %@ %@", error, [error userInfo]);
    } else {
        NSLog(@"Deleted... yipee... !!!");
    }
Run Code Online (Sandbox Code Playgroud)

iphone application-cache avfoundation ios

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