我正在尝试在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作为蒙版,还是需要使用图像?
有人可以帮助我理解快速使用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) 有没有办法从Apple Watch获取传感器数据?例如,如何从Apple Watch连接并获取心率到我的应用程序?这些是我在我的应用中需要执行的步骤:
我知道它如何适用于BT上的其他HR监视器.界面是否类似?或者应该依靠HealthKit来实现这一目标?
是否可以使用SWIFT使用手动内存管理(而不是自动引用计数)编写应用程序?
我可以打电话retain和release使用Swift吗?
我检查了我的旧游戏,我想在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) 在功能编程中,该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) 在我寻求更多关于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每行语句是不是我要找的.
非常感谢你提前!
我有这个代码
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语句的行中,它给出了警告:
切换条件评估为常量
我怎么能摆脱这个警告?
我查看了Apple的所有文档,以及多个最终用户博客和类似内容......而不是单个switch多行代码的例子case,更不用说另一个了switch.我尝试了几种不同的语法,但没有去,它总是抱怨未使用的闭包.这可能吗?
在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)
当在类之外时,范围是创建常量的文件.使用一种方法与另一种方法之间是否有任何其他差异,是否有人对最佳实践有意见?
swift ×7
ios ×4
sprite-kit ×2
swift2 ×2
constants ×1
healthkit ×1
ios7 ×1
iphone ×1
objective-c ×1
simd ×1
skcropnode ×1
skspritenode ×1
swift3 ×1
uitouch ×1
watchkit ×1
xcode ×1