小编Luc*_*tti的帖子

Sprite Kit的关卡编辑器?

你知道一个与Sprite Kit for iOS兼容的关卡编辑器吗?

我需要一个类似于Cocos Builder的软件,但是据我所知,它与Sprite Kit不兼容.

谢谢.

ios7 sprite-kit

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

如何从Apple Watch启动iOS App?

有没有办法从Apple Watch推出iOS应用程序?

编辑: - 尝试使用下面的两个api但不起作用: -

Apple Watch Code

调用insideController.m

+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply;    // launches containing iOS application on the phone. userInfo must be non-nil
Run Code Online (Sandbox Code Playgroud)

iOS代码

在Appdelegate.m内部调用

- (void) application:(UIApplication *) application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
Run Code Online (Sandbox Code Playgroud)

objective-c apple-watch watchkit

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

Swift可选绑定元组

我试图在Swift的IF语句中使用元组作为可选绑定,但它不会编译,并且该错误消息不太有用.以下为什么不编译?

let user:String? = "billy"
let pass:String? = "password"

if let test = (user?,pass?){
    print("this works")
}
Run Code Online (Sandbox Code Playgroud)

或这个

let user:String? = "billy"
let pass:String? = "password"

if let test = (user,pass){
    print("this works")
}
Run Code Online (Sandbox Code Playgroud)

optional ios swift

13
推荐指数
2
解决办法
4570
查看次数

对[Any]数组进行排序

给定一个数组定义如下

let list: [Any]
Run Code Online (Sandbox Code Playgroud)

我想将其排序WHEN

  1. 其中的所有值都具有相同的类型 Element
  2. ElementComparable.

什么时候应该返回排序的数组

所以我需要一个函数,当数组以类似下面的方式填充时

let list: [Any] = [10, 11, 0, 2, -1]
let list: [Any] = ["Red", "Green", "Blue"]
let list: [Any] = [true, false, true, true]
Run Code Online (Sandbox Code Playgroud)

确实返回排序的数组.

什么时候应该返回零

另一方面,当list包含以下示例之一时

let list: [Any] = [CGPointZero, CGPoint(x:1, y:1)] // CGPoint is not comparable
let list: [Any] = [10, "Hello"] // Values of different types
Run Code Online (Sandbox Code Playgroud)

我想要nil作为回报值.

任何的想法?

arrays sorting generics introspection swift

13
推荐指数
2
解决办法
573
查看次数

在Swift中`let`有什么好处?

我知道Swift确实鼓励我们程序员每次有意义时都使用常量(let)而不是变量(var).

这是一件好事,因为我们正在向编译器提供有关我们的代码意味着什么的更多细节,并且编译器可以更好地防止我们犯错误(例如,更改一些不应更改的值).

我的问题是,当我们使用常量而不是变量时,编译器是否会应用一些性能优化?(例如,执行时间更短,占地面积更小,......).

performance constants swift

12
推荐指数
2
解决办法
1491
查看次数

Swift,Strings和Memory地址

有一些我不了解Swift如何管理内存地址 String(s)

1.参考类型

这里fooboo是2个指针指向相同的内存位置.

class Foo { }

let foo = Foo()
let boo = foo

unsafeAddressOf(foo) // "UnsafePointer(0x7FCD13719BE0)"
unsafeAddressOf(boo) // "UnsafePointer(0x7FCD13719BE0)" 
Run Code Online (Sandbox Code Playgroud)

好.

2.价值类型

let word0 = "hello"
let word1 = word0
Run Code Online (Sandbox Code Playgroud)

现在,word0word1value types但这里的copy on write机制是参与.

[...]但是,当绝对必要时,Swift仅在幕后执行实际复制.Swift管理所有值复制以确保最佳性能,您不应该避免分配以尝试抢占此优化.https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP40014097-CH13-XID_134

那他们为什么有2个不同的内存地址呢?

unsafeAddressOf(word0) // "UnsafePointer(0x7FCD1342ACE0)"
unsafeAddressOf(word1) // "UnsafePointer(0x7FCD13414260)"
Run Code Online (Sandbox Code Playgroud)

3.更多

同时请注意,Stringstruct那个莫名其妙符合AnyObject.

使用Xcode 7 GM Playground和Swift 2.0进行测试.

string value-type memory-address swift

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

无主与弱.为什么我们应该更喜欢无主?

正如Apple在"Swift编程语言"中所说,似乎我们应该unownedweak任何可能的更喜欢:

如果捕获的引用永远不会变为nil,则应始终将其捕获为无主引用,而不是弱引用.

本页的"弱和无主参考"部分

我确实知道这两者之间的区别.但我好奇的是有没有很好的理由,宁愿 unownedweak?我认为weak更安全,我们可以总是编写[weak obj]和可选的绑定检查,而不考虑存在的可能性obj.

它与某些性能考虑或我错过的东西有关吗?或者是否完全可以使用weak而不是一直使用unowned

memory-management swift

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

在Swift中将数组拆分为子数组

问题

给定一组值如何将其拆分为由sub-arrays相等的元素组成?

鉴于此数组

let numbers = [1, 1, 1, 3, 3, 4]
Run Code Online (Sandbox Code Playgroud)

我想要这个输出

[[1,1,1], [3, 3], [4]]
Run Code Online (Sandbox Code Playgroud)

我不想要的

解决这个问题的一种可能方法是创建某种索引来指示每个元素的出现.

let indexes = [1:3, 3:2, 4:1]
Run Code Online (Sandbox Code Playgroud)

最后使用索引重建输出数组.

let subsequences = indexes.sort { $0.0.0 < $0.1.0 }.reduce([Int]()) { (res, elm) -> [Int] in
    return res + [Int](count: elm.1, repeatedValue: elm.0)
}
Run Code Online (Sandbox Code Playgroud)

但是,使用此解决方案,我将失去原始值.当然在这种情况下它不是一个大问题(Int值仍然是,Int即使重新创建)但我想将此解决方案应用于更复杂的数据结构,如此

struct Starship: Equatable {
    let name: String
    let warpSpeed: Int
}

func ==(left:Starship, right:Starship) -> Bool {
    return left.warpSpeed …
Run Code Online (Sandbox Code Playgroud)

arrays swift

11
推荐指数
2
解决办法
6955
查看次数

语法解释:Swift中的方括号

我正在研究Swift,并且对以下语法感到困惑:

 var treasures: [Treasure] = []
Run Code Online (Sandbox Code Playgroud)

宝藏是自定义类,声明如下:

class Treasure: NSObject {
...
Run Code Online (Sandbox Code Playgroud)

在Obj-C中,方括号表示方法,但这意味着什么:

  var treasures: [Treasure] = []
Run Code Online (Sandbox Code Playgroud)

有人可以提供解释吗?谢谢!

arrays ios swift

10
推荐指数
2
解决办法
8278
查看次数

协议之间的实现冲突

我偶然发现了一个问题,我无法弄清楚如何解决它.

假设我们有一个基类(可能来自FrameworkA),其属性名为subject:

public class MyClass {
    public var subject: String
}
Run Code Online (Sandbox Code Playgroud)

我们有一个协议(可能来自FrameworkB),另一个属性但具有相同的名称:

public protocol MyProtocol {
    var subject: String { get }
}
Run Code Online (Sandbox Code Playgroud)

这两个属性代表完全不同的东西.

如何创建一个继承MyClass和实现的类MyProtocol?我该如何使用这些属性?

public class SecondClass: MyClass, MyProtocol {
    var MyProcotol.name: String { // <==== Obviously not allowed
        return "something"
    }
    var MyClass.name: String { // <==== Obviously not allowed
        return "something else"
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为C#允许这样的声明,但我不是100%肯定...

oop inheritance implementation protocols swift

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