小编Luc*_*tti的帖子

是否可以在Sprite Kit中使用圆圈(SKShapeNode)作为遮罩?

我正在尝试在Sprite Kit项目中创建一个圆形蒙版.我像这样创建圆圈(将其定位在屏幕的中心):

SKCropNode *cropNode = [[SKCropNode alloc] init];

SKShapeNode *circleMask = [[SKShapeNode alloc ]init];
CGMutablePathRef circle = CGPathCreateMutable();
CGPathAddArc(circle, NULL, CGRectGetMidX(self.frame), CGRectGetMidY(self.frame), 50, 0, M_PI*2, YES);
circleMask.path = circle;
circleMask.lineWidth = 0;
circleMask.fillColor = [SKColor blueColor];
circleMask.name=@"circleMask";
Run Code Online (Sandbox Code Playgroud)

在代码中,我将其设置为以下掩码cropNode:

[cropNode setMaskNode:circleMask];
Run Code Online (Sandbox Code Playgroud)

... ...而不是显示在圆圈内的内容,掩码显示为正方形.

是否可以使用a SKShapeNode作为蒙版,还是需要使用图像?

iphone objective-c ios7 sprite-kit skcropnode

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

快速正确使用getter和setter

有人可以帮助我理解快速使用getter和setter的正确用法.我得到的印象与Java说的不一样.

这是Swift存储和访问类变量的正确用法吗?

class Person {
    private var name: String

    init(name: String) {
        self.name = name
    }

    func setName(name: String) {
        self.name = name
    }

    func getName() -> String {
        return name
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift swift2

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

如何将Apple Watch的传感器数据传输到iPhone?

有没有办法从Apple Watch获取传感器数据?例如,如何从Apple Watch连接并获取心率到我的应用程序?这些是我在我的应用中需要执行的步骤:

  1. 定义代表以从Apple Watch接收心率信息.
  2. 向Apple Watch请求定期发送数据

我知道它如何适用于BT上的其他HR监视器.界面是否类似?或者应该依靠HealthKit来实现这一目标?

ios healthkit watchkit

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

斯威夫特没有ARC

是否可以使用SWIFT使用手动内存管理(而不是自动引用计数)编写应用程序?

我可以打电话retainrelease使用Swift吗?

memory-management automatic-ref-counting swift

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

Swift 2:'Set <UITouch>'类型的值没有成员'anyObject'

我检查了我的旧游戏,我想在Swift 2.0中更新它.当我试图修复它时,Xcode发现了一个错误.错误是类型'Set'的值在此代码行中没有成员'anyObject':

var touch:UITouch = touches.anyObject() as! UITouch
Run Code Online (Sandbox Code Playgroud)

功能:

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {

    self.runAction(SKAction.playSoundFileNamed("torpedo.mp3", waitForCompletion: false))

    var touch:UITouch = touches.anyObject() as! UITouch //<-- Here is Error
    var location:CGPoint = touch.locationInNode(self)

    var torpedo:SKSpriteNode = SKSpriteNode(imageNamed: "torpedo")
    torpedo.position = player.position

    torpedo.physicsBody = SKPhysicsBody(circleOfRadius: torpedo.size.width/2)
    torpedo.physicsBody!.dynamic = true
    torpedo.physicsBody!.categoryBitMask = photonTorpedoCategory
    torpedo.physicsBody!.contactTestBitMask = alienCategory
    torpedo.physicsBody!.collisionBitMask = 0
    torpedo.physicsBody!.usesPreciseCollisionDetection = true

    var offset:CGPoint = vecSub(location, b: torpedo.position)

    if (offset.y < 0){
        return

    self.addChild(torpedo)

    var direction:CGPoint = …
Run Code Online (Sandbox Code Playgroud)

uitouch sprite-kit skspritenode swift swift2

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

"reduce"函数可以在函数式编程中并行化吗?

功能编程中,该map功能的一个好处是它可以实现为并行执行.

因此,在4核硬件上,此代码和并行实现map将允许同时处理 4个值.

let numbers = [0,1,2,3]
let increasedNumbers = numbers.map { $0 + 1 }
Run Code Online (Sandbox Code Playgroud)

好的,现在让我们谈谈这个reduce功能.

返回结果重复调用与初始化为初始化的自身的累积值和自身的每个元素,即返回组合(组合(...组合(组合(初始,自[0]),自[1]), ... self [count-2]),self [count-1]).

我的问题:是否reduce可以实现该功能以便并行执行?或者,根据定义,它只能按顺序执行

例:

let sum = numbers.reduce(0) { $0 + $1 }
Run Code Online (Sandbox Code Playgroud)

parallel-processing functional-programming simd

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

在Swift中将JSON转换为模型值

在我寻求更多关于Swift的知识的过程中,我正在寻找改进我的应用程序的方法,并注意到我正在做出假设的一些地方,也许我不应该这样做.

在创建一个新对象时,让我们说一个'学生',他们需要像名字(String),年龄(Int)和得分(Float)这样的东西.我从一个JSON文件中读取这些内容,然后将它们放入如下对象中:

// note, details is a [String:Any] type
let name = details["name"] as! String
let age = details["age"] as! Int 
let score = Float(details["score"])
self.student = Student(name: name, tutor_group: tutor_group, score: score)
Run Code Online (Sandbox Code Playgroud)

所以我的问题如下; 1.我应该如何修改我的代码以检查如果一个值不是一个数字,它应该在哪里,变量变得正常nil,甚至更好0?2.如果词典中的键不存在怎么办?3.有不同的方法,如果是这样,哪种方法最佳?

请注意,我想保留这个代码尽可能短- if/ else每行语句是不是我要找的.

非常感谢你提前!

xcode ios swift swift3

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

切换条件在Swift中计算为常量

我有这个代码

import UIKit

enum menuSituation{
    case menuIsOpened
    case menuIsClosed

}

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        var currentSituation = menuSituation.menuIsClosed

        switch(currentSituation){ //Here is the warning
        case .menuIsOpened:
            println("Menu is opened")
            break
        case .menuIsClosed:
             println("Menu is closed")
            break

        }    
    }
Run Code Online (Sandbox Code Playgroud)

在我开始定义switch语句的行中,它给出了警告:

切换条件评估为常量

我怎么能摆脱这个警告?

switch-statement ios swift

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

Swift切换语句可以在一个案例中有另一个开关吗?

我查看了Apple的所有文档,以及多个最终用户博客和类似内容......而不是单个switch多行代码的例子case,更不用说另一个了switch.我尝试了几种不同的语法,但没有去,它总是抱怨未使用的闭包.这可能吗?

switch-statement swift

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

在Swift中声明一个类之外的私有常量

在Swift中创建私有常量时,可以在类中声明它们,

final class SomeClass: NSObject { 

    private let someFloat:CGFloat = 12
}
Run Code Online (Sandbox Code Playgroud)

以及课外.

private let someFloat:CGFloat = 12

final class SomeClass: NSObject {  }
Run Code Online (Sandbox Code Playgroud)

当在类之外时,范围是创建常量的文件.使用一种方法与另一种方法之间是否有任何其他差异,是否有人对最佳实践有意见?

constants code-standards swift

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