小编Air*_*ity的帖子

使用CCHmac()生成HMAC swift sdk8.3

在SDK8.3之前我用这种方式生成了我的hmac.现在我在CCHmac()函数上出错了.由于我是初学者,我无法弄清楚如何解决它.在此先感谢您的帮助!

xcode警告:不能用类型的参数列表(UInt32,[CChar] ?, UInt,[CChar] ?, UInt,inout [(CUnsignedChar)]来'CCHmac'

func generateHMAC(key: String, data: String) -> String {

    let cKey = key.cStringUsingEncoding(NSUTF8StringEncoding)
    let cData = data.cStringUsingEncoding(NSUTF8StringEncoding)

    var result = [CUnsignedChar](count: Int(CC_SHA512_DIGEST_LENGTH), repeatedValue: 0)
    CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA512), cKey, strlen(cKey!), cData, strlen(cData!), &result)


    let hash = NSMutableString()
    for var i = 0; i < result.count; i++ {
        hash.appendFormat("%02hhx", result[i])
    }

    return hash as String
}
Run Code Online (Sandbox Code Playgroud)

ios swift

4
推荐指数
1
解决办法
1822
查看次数

Swift中的递归块

我一直在尝试将这段代码从Objective-C(取自https://gist.github.com/mikeash/1254684)转换为Swift.我已经成功地使用它来根据API调用的结果重复一段代码.在Swift中有更好的方法吗?

dispatch_block_t recursiveBlockVehicle(void (^block)(dispatch_block_t recurse)) {
    return ^{
        block(recursiveBlockVehicle(block));
    };
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

recursion swift

4
推荐指数
1
解决办法
1481
查看次数

有什么方法可以在Swift中逐步加快游戏玩法?

我目前正在使用Spritekit开发游戏.游戏具有在屏幕顶部产生并落向玩家角色的物体,并且当玩家角色与任何物体碰撞时游戏结束.我试图找到一种随着时间的推移逐渐加快游戏速度以使游戏更加困难的方法(即当游戏开始时物体以正常速度下降,5秒后加速50%,再过5秒后再加速50%,无限的.)

Would I need to use NSTimer to make a countdown to increase the gravity applied to the falling objects? Sorry if this is a basic thing, I'm kind of new to programming.

Thanks, Jake

EDIT:

My spawn method for enemies-

let spawn = SKAction.runBlock({() in self.spawnEnemy()})
let delay = SKAction.waitForDuration(NSTimeInterval(2.0))
let spawnThenDelay = SKAction.sequence([spawn, delay])
let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
self.runAction(spawnThenDelayForever)
Run Code Online (Sandbox Code Playgroud)

And my method for making the enemies fall-

func spawnEnemy() {
    let enemy = SKNode()
    let x = arc4random() …
Run Code Online (Sandbox Code Playgroud)

nstimer ios sprite-kit swift

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

Java ArithmeticException BigInteger 会溢出支持的范围

我正在研究一种算法来检查数字是否为素数并且需要处理非常大的数字,因此我使用的是 BigInteger 类。问题是抛出这个异常ArithmeticException BigInteger 会溢出支持的范围

Exception in thread "main" java.lang.ArithmeticException: BigInteger would overflow supported range
    at java.math.BigInteger.reportOverflow(Unknown Source)
    at java.math.BigInteger.checkRange(Unknown Source)
    at java.math.BigInteger.<init>(Unknown Source)
    at java.math.BigInteger.shiftLeft(Unknown Source)
    at java.math.BigInteger.pow(Unknown Source)
    at Kitas.main(Kitas.java:118)
Run Code Online (Sandbox Code Playgroud)

以及抛出异常的行:

b = BigInteger.valueOf(2).pow((int) (35*(Math.pow(2, counter))));
Run Code Online (Sandbox Code Playgroud)

一旦计数器达到 26 的值,就会抛出异常。

java overflow range biginteger arithmeticexception

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

在Swift中基于空值过滤数组

我正在尝试过滤字典数组。以下代码是我正在寻找的场景的示例

let names = [ 
    [ "firstName":"Chris","middleName":"Alex"],
    ["firstName":"Matt","middleName":""],
    ["firstName":"John","middleName":"Luke"],
    ["firstName":"Mary","middleName":"John"],
]
Run Code Online (Sandbox Code Playgroud)

最终结果应该是一个具有中间名的数组。

arrays xcode filter ios swift

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

Swift NSUserDefaults第一次没有

嗨我的应用程序第一次运行时崩溃了.这是我的代码:

 let State = save.stringForKey("StateSave")
 let City = save.stringForKey("CitySave")
 let Vehicle = save.stringForKey("ModelNumberSave")
 let ExtensionPeriod = save.stringForKey("ExtensionPeriodChoosed")
 let Location = "Location"


 if ExtensionPeriod == nil {
      let name = ""
      var FieldChoosed: Void = save.setObject(name, forKey: "ExtensionPeriodChoosed")
      save.synchronize()

 }

 save.synchronize()
 var DetailNames = ["\(State!)","\(City!)","\(Location)","\(Vehicle!)","\(ExtensionPeriod!)"]
Run Code Online (Sandbox Code Playgroud)

我得到了nil这条线:

var DetailNames = ["(State!)","(City!)","(Location)","(Vehicle!)","(ExtensionPeriod!)"]

实际上ExtensionPeriodnil.但我不明白为什么...... ExtensionPeriodnil,但是我写的代码ExtensionPeriod会像""所以不是nil.请帮我.

nsuserdefaults swift

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

将 4 个数字组成的字符串解析为 CGRect

我有这个字符串(325, 140, 739, 979)。我想解析它并分别取出四个数字。

该字符串代表一个CGRect. 我想将第一个数字作为x 第二个数字作为y第三个数字width作为最后一个数字height

实现这一目标的最佳方法是什么?

string ios swift

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

如何根据另一个数组的排序顺序对多个数组进行排序

我有多个数组,我想根据其中一个数组的排序顺序对所有数组进行排序,如下所示:

var myArr = ["b", "a", "c"]
var myArr2 = ["letter b", "letter a", "letter c"]
var myArr3 = ["b is the second letter", "a is the first letter", "c is the third letter"]

func sortMultipleArraysBasedOnOne(alphabeticallyArray:Array, arrays:[Array]){
  //order myArr alphabetically
  for array in arrays{
    //change all arrays indexes like in myArr
  }
}

sortMultipleArraysBasedOnOne(myArr, [myArr2, myArr3])
Run Code Online (Sandbox Code Playgroud)

我希望在执行函数之后,数组将是这样的:

myArr = ["a", "b", "c"]
myArr2 = ["letter a", "letter b", "letter c"]
myArr3 = ["a is the first letter", "b is the …
Run Code Online (Sandbox Code Playgroud)

arrays indexing function swift

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

来自类 NSObject 和 NSCoder 的快速错误多重继承

我有一个名为 Diary 的类,它实现了 NScoder 并且有一个成员,它是另一个名为 DiaryEntry 的类的数组

这是我的日记课

import Foundation

class Diary: NSObject,NSCoder
{
    var dia=[DiaryEntry]()
    override init()
    {
        super.init()
    }

    func setDiary(ent:DiaryEntry)
    {
        if(dia.count==0)
        {
            self.dia.append(ent)

        }
        else {
            for entrie in dia
            {
                if(entrie==ent)

                {
                    entrie.text+="\n"
                    entrie.text+=ent.text
                    break
                }
                else {
                    self.dia.append(ent)
                }
            }
        }
    }

    required init(coder decoder: NSCoder) {
        self.dia = decoder.decodeObjectForKey("dia") as [DiaryEntry]

        super.init() 
    }

    func encodeWithCoder(encoder: NSCoder) {
        encoder.encodeObject(dia, forKey: "dia")
    }
}
Run Code Online (Sandbox Code Playgroud)

swift

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

如何在Swift中使用泛型接受运算符的数字?

我正在尝试为数字创建一个运算符.例如,将数字递增10的运算符.

这是我写的代码:

prefix operator +++{}

prefix operator +++<T>(inout operand: T) -> T{
    operand += 10
    return operand
}
Run Code Online (Sandbox Code Playgroud)

我的+=运营商出错了.它需要数字操作数.所以我这样做了:

protocol Numeric {}

extension Int: Numeric {}
extension Float: Numeric {}
extension Double: Numeric {}

prefix operator +++ {}

prefix operator +++<T: Numeric>(inout operand: T) -> T {
    operand += 10
    return operand
}
Run Code Online (Sandbox Code Playgroud)

但它无法编译.有人有什么想法吗?

generics custom-operator swift

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

如何投射AnyObject?在Swift 1.2中使用String

一切都很好,直到我下载了新版本的Xcode 6.3和Swift 1.2.

但是当我再次编译我的应用程序时,出现了很多错误.我已经处理了大部分问题,但有一个特定的错误,我无法弄清楚解决方案

错误是"AnyObject?不能转换为String?"

在更新Xcode之前,这绝对没问题:

let firstName = self.currentUser["firstName"] as? String
Run Code Online (Sandbox Code Playgroud)

xcode ios parse-platform swift xcode6.3

0
推荐指数
1
解决办法
2351
查看次数

项目欧拉#35 - 圆形素数

我正在尝试解决Project Euler的问题#35,它问:

这个数字197被称为圆形素数,因为数字的所有旋转:197,971和719本身都是素数.

在100:2,3,5,7,11,13,17,31,37,71,73,79和97之下有十三个这样的素数.

一百万以下有多少个圆形素数?

为了解决这个问题,我在Swift中使用了以下代码:

let size = 1000000

func ESieve(x : Int) -> [Bool] {

    var primes = [Bool](count: x + 1, repeatedValue: true)
    primes[0] = false
    primes[1] = false

    for var i = 2; i < primes.count; i++ {
        if !primes[i] {
           continue
        }

        for (var j = 2*i; j < primes.count; j += i) {
           primes[j] = false
        }
    }

    return primes
}

let sieve = ESieve(size)

func getPrimes() -> [Int] {

   var array …
Run Code Online (Sandbox Code Playgroud)

primes swift

0
推荐指数
1
解决办法
332
查看次数