小编Nar*_*hal的帖子

如何在Swift中过渡场景

在Objective-C中,使用Sprite-Kit,我会在Objective-C中成功使用类似下面的代码来调出一个新的场景

if ([touchedNode.name  isEqual: @"Game Button"]) {
        SKTransition *reveal = [SKTransition revealWithDirection:SKTransitionDirectionDown duration:1.0];
        GameScene *newGameScene = [[GameScene alloc] initWithSize: self.size];
        //  Optionally, insert code to configure the new scene.
        newGameScene.scaleMode = SKSceneScaleModeAspectFill;
        [self.scene.view presentScene: newGameScene transition: reveal];
    }
Run Code Online (Sandbox Code Playgroud)

在尝试将我的简单游戏移植到Swift时,到目前为止,我有这个工作......

for touch: AnyObject in touches {
        let touchedNode = nodeAtPoint(touch.locationInNode(self))
        println("Node touched: " + touchedNode.name);
        let touchedNodeName:String = touchedNode.name

        switch touchedNodeName {
        case "Game Button":
            println("Put code here to launch the game scene")

        default:
            println("No routine established for this") …
Run Code Online (Sandbox Code Playgroud)

transitions sprite-kit swift xcode6 ios8

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

NSScanner是否适用于Swift Strings?

我想知道为什么这样做(注意我使用的是NSString类型):

    let stringToSearch:NSString = "I want to make a cake and then prepare coffee"
    let searchTerm:NSString = "cake"
    let scanner = NSScanner(string: stringToSearch)
    var result:NSString? = nil
    scanner.scanUpToString(searchTerm, intoString:&result)
    println(result) // correctly outputs "I want to make a"
Run Code Online (Sandbox Code Playgroud)

但如果我尝试使用"String"类型而不是"NSString",则无法编译:

    let altStringToSearch:String = "I want to make a cake and then prepare coffee"
    let altSearchTerm:String = "cake"
    let altScanner = NSScanner(string: altStringToSearch)
    var altResult:String? = nil
    altScanner.scanUpToString(altSearchTerm, intoString:&altResult)
    println(result)
Run Code Online (Sandbox Code Playgroud)

错误说"无法转换表达式的类型'BOOL'来输入'inout String?' 在scanUpToString行上.我不确定它甚至指的是什么BOOL.

那么,NSScanner不能与Swift String类型一起使用吗?是否有我应该使用的新命令?

nsstring nsscanner swift xcode6 ios8

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

Xcode:缺少必需的模块错误

我看过类似问题的答案,但仍然很困惑。

背景

我有一个项目正在运行,但我正在尝试在 Xcode 8.3.1 中重新创建它。我首先使用带有一个依赖项的 Swift 包管理器:[.Package(url: " https://github.com/OpenKitten/MongoKitten.git ", MajorVersion: 3)]。然后我按照我的笔记从 Cocoa 转换为 iOS(因为 SPM 不直接支持 iOS),这在之前的项目开始时有效:

  1. 制作启动 Package.swift 文件
  2. swift 包生成 xcodeproj
  3. 在 Xcode 中打开项目
  4. 项目:构建设置:基础 SDK ==> 更改为 IOS
  5. 编辑器:添加目标:(iOS ...单视图应用程序)
  6. 选择您的项目,查看目标列表,找到新添加的目标:常规:部署信息
  7. 在工具栏上,更改“活动方案”

一切看起来都很好,我的项目包括 MongoKitten 和它所依赖的一堆其他框架。其中之一称为“CLibreSSL”。我将所有框架作为目标添加到我新创建的目标中。

错误信息

我可以“导入 MongoKitten”到我的视图控制器中(自动完成工作)。但是,当我编译时,我收到此错误消息(即使我个人没有尝试导入 CLibreSSL):

Compile Swift source files 
[... bunch of stuff referring to my new target and the viewcontroller ...] 
<unknown>:0: error: missing required module 'CLibreSSL' 
Run Code Online (Sandbox Code Playgroud)

无法“导入 CLibreSSL”到我的视图控制器中(无法自动完成识别)。我注意到,当我访问 MongoKitten 相关源文件时,它们确实在导入语句中成功识别了 CLibreSSL。我什至可以删除它们并重新输入并成功自动完成。

问题

我意识到当我像我一样创建新目标时可能需要做一些额外的事情,并且它可能与搜索路径有关,但我已经尝试了很多东西并且结果没有改变。有人可以告诉我如何解决这个问题(请不要假设我有太多知识,因为我发现这些东西令人困惑)?

如果您需要更多信息,请告诉我。谢谢

frameworks ios swift swift-package-manager xcode8

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

如何使用 jq 获取根密钥和密钥类型

让我们以这个简单的数据文件为例http : //data.cdc.gov/data.json

我知道如何获取根键名称:

jq keys_unsorted[] -r data.json
Run Code Online (Sandbox Code Playgroud)

它产生:

@context
@id
@type
conformsTo
describedBy
dataset
Run Code Online (Sandbox Code Playgroud)

而且我知道如何获取密钥类型:

jq 'map(type)' data.json
Run Code Online (Sandbox Code Playgroud)

其中产生:

[
  "string",
  "string",
  "string",
  "string",
  "string",
  "array"
]
Run Code Online (Sandbox Code Playgroud)

没有某种方法可以将其组合成返回对吗?(我真正想做的是找到第一个根级数组的键名,如果有的话)。我可以写一个例程来弄清楚,但这似乎不雅。

额外的问题:如何确定键的类型(例如,我会以某种形式向 jq 发送“数据集”并得到“数组”作为回报)?

json types key jq

3
推荐指数
2
解决办法
5280
查看次数