标签: swift-playground

相当于 Swift 中的 *args?

func sumOf(numbers: Int...) -> Int {
    var sum: Int = 0
    for number in numbers {
       sum += number
    }
    return sum
}
sumOf(1, 2, 3) //6
Run Code Online (Sandbox Code Playgroud)

这是取自SwiftiBook 的示例代码。它找到任意数量的参数的总和。

此代码的 Python 等效项是:

def sumOf(*args):
    sum = 0
    for number in args:
        sum += number
    return sum
sumOf(1, 2, 3) #6
Run Code Online (Sandbox Code Playgroud)

在 python 中, *args 接受所有变量类型,因此如果我出于某种原因想要这样做,我可以:

def sumOf(*args):
    sum = ""
    for number in args:
        sum += str(number)
    return sum
sumOf(1, "test", 3) #"1test3"
Run Code Online (Sandbox Code Playgroud)

我该如何在 中执行此操作Swift?如何创建具有可变数量的任意类型参数的函数?我不需要这样做,但我想知道如何做。

谢谢。

xcode ios swift swift-playground

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

如何使用 AVPlayer 快速播放 YouTube 视频?

如何使用 AVPlayer 快速播放 YouTube 视频?

我正在使用下面的代码来播放 YouTube 视频,但 avplayer 中没有任何反应。它仍然是空白的。

var urlstring = "https://www.youtube.com/watch?v=hMba_c-VSkI"
var url = NSURL(string: urlstring)
var av:AVPlayerViewController = segue.destinationViewController as AVPlayerViewController
av.player = AVPlayer(URL: url)
Run Code Online (Sandbox Code Playgroud)

iphone ios swift ios8 swift-playground

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

Playground 执行失败:错误:无法查找符号

我正在使用 Xcode 7.3。我已经将 Playground 和 Frameworks 放在同一个工作区中并构建了框架。我仍然收到此错误

Playground execution failed: error: Couldn't lookup symbols:  
_RestofireVersionNumber
Run Code Online (Sandbox Code Playgroud)

Playground 执行失败:错误:无法查找符号

如何解决这个问题?

ios swift swift-playground

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

Xcode 8 Playground 不运行

我对 Xcode 有问题..如果我想运行任何游乐场,即使是简单的代码,例如:print("Hello"),它不起作用,有一段时间卡在“运行”上并且无法运行代码,我尝试重新安装并删除 xcode 文件......但它仍然无法正常工作,这是出现的消息:(无法启动进程。无法在当前状态下查找:正在关闭)

在此处输入图片说明..

无法启动进程。无法查找服务 com.apple.CoreSimulator.host_support: 0xfffffecc )

这是最新版本 8.2.1(8C1002) 

xcode swift-playground

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

快速游乐场错误 BAD_INSTRUCTION

所以我有以下贪婪算法,它给了我以下错误:

Playground 执行中止:错误:执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。进程已留在中断点,使用“thread return -x”返回到表达式求值之前的状态。

班级:

// This class represents an undirected graph using adjacency list
public class Graph{
    var V: Int // number of vertices
    var adj: [[Int]] = [[]] //Adjacency List

    public init(v: Int) {
        V = v
        adj = [[Int]](repeating: [], count: v)
    }

    // Function to add an edge into the graph
    public func addEdge(v: Int, w: Int){
        adj[v].append(w)
        adj[w].append(v) // Graph is undirected
    }

    // Assigns colors (starting from 0) to all vertices and
    // …
Run Code Online (Sandbox Code Playgroud)

xcode swift swift-playground

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

不同文件中的访问类

我仍然是 swift 的新手,我无法在一些事情上得到明确的答案。

到目前为止,我一直在 Playgrounds 中使用单个文件。如果我想使用更多文件,如何从在控制视图的主文件中创建的类访问数据(变量和函数)?

据我所知,拥有多个文件只是为了方便,所以我不能再写一次。

(也在旁边)当一个函数具有私有、公共或只是“func”时,这意味着什么?

我正在使用 swift 3 playground

谢谢

swift swift-playground

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

在 Swift 4 playground 中使用外部库

我一直在尝试学习 Swift 4,因此需要使用 Xcode9 Beta 作为 IDE。我想加载一个大型 CSV 数据文件以使用操场进行一些数据分析。我尝试使用的库是CSVImporter,按照开发人员的推荐使用 Carthage 安装。

我在这个问题上花了一个星期,试图遵循我在网上找到的指南,比如这里 - Stackoverflow这里 - Medium,但它们都指的是以前版本的 Swift 和 Xcode,似乎没有一个有效。

一般来说,他们的方法似乎是将游乐场与使用导入资源的项目合并到工作区中。我通常会得到“没有这样的模块‘CSVImporter’”。

我的具体问题是:如何设置 Swift 4 Playground 以便我可以使用 Xcode 9 Beta 导入 CSVImporter?

虽然我有这个特定的任务,但我认为这会引起社区的普遍兴趣。我怀疑有人比我对 Xcode 如何执行构建和解决构建依赖有更清晰的想法,能够很容易地解决这个问题!非常感谢。

xcode swift-playground swift4 xcode9-beta5

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

Swift Playgrounds 运行速度非常慢

我在 Swift Playground 中使用了一些不同的 SCNAction,并且动画运行速度非常慢。这是我的一个行为的例子

node.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 0, z:  2 * .pi, duration: 2)))
Run Code Online (Sandbox Code Playgroud)

另外,我的操作代码位于一个单独的类中,就像我在网上阅读的那样,那么可能有什么问题呢?

提前致谢!

xcode scenekit swift swift-playground

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

Swift Playgrounds 中的用户麦克风权限

我正在尝试使用 AVFoundation (特别是 installTap:onBus:) for ios 来访问用户的麦克风以在我正在制作的游戏中进行麦克风输入。在常规 xcode 项目中,您将请求用户访问并将 NSMicrophoneUsageDescription 写入 info.plist。

然而,由于游乐场的性质,他们没有可写入的 info.plist。结果是,在请求权限(弹出窗口向用户显示)后,playground 崩溃,因为它无法写入 info.plist 文件!它没有给我一个真正的错误日志,所以我通过在 xcode 项目中运行相同的代码推断出这是错误。

有没有什么方法可以强制游乐场写入特定的 info.plist 文件/在游乐场中绕过此权限?

user-permissions ios swift swift-playground

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

如何解决 Swift Playgrounds 中的“运行此页面时出现问题”消息?

我正在尝试使用 SceneKit 为 WWDC 学生挑战赛做一些事情,这要求我的项目在 Swift 游乐场中。我不断收到“运行此页面时出现问题”的消息。它不提供错误消息。它只是建议检查我的代码或重新开始。我曾尝试单独删除代码段,但找不到此问题的根源。我还尝试在 man Xcode playground 中运行它,它提供了警告,我引用“操场无法继续运行,因为操场源代码做到了”。我被困住了。我的代码有什么问题。

import UIKit
import SceneKit
import QuartzCore 
import PlaygroundSupport

class GameScene: UIViewController, SCNSceneRendererDelegate {
    var primaryView: SCNView!
    var primaryScene: SCNScene!
    var cameraNode: SCNNode!
    
    override func viewDidLoad() {
        sceneAndViewInit()
        cameraInit()
        createGround()
        moonInit()
    }
    
    func createGround() {
        var ground = SCNBox(width: 200, height: 1, length: 200, chamferRadius: 0)
        var groundPhysicsShape = SCNPhysicsShape(geometry: ground, options: nil) 
        var groundNode = SCNNode(geometry: ground)
        ground.firstMaterial?.diffuse.contents = UIColor.orange
        ground.firstMaterial?.specular.contents = UIColor.white
        groundNode.position = SCNVector3(0, -6, 0)
        groundNode.physicsBody …
Run Code Online (Sandbox Code Playgroud)

scenekit swift swift-playground

5
推荐指数
2
解决办法
534
查看次数