teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

実際試してみたらエラー出たのでコード修正

2017/03/19 15:44

投稿

jollyjoester
jollyjoester

スコア1585

answer CHANGED
@@ -11,23 +11,23 @@
11
11
  ```swift
12
12
  extension String {
13
13
  var md5: String! {
14
- let str = self.cStringUsingEncoding(NSUTF8StringEncoding)
14
+ let str = self.cString(using: String.Encoding.utf8)
15
- let strLen = CC_LONG(self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
15
+ let strLen = CC_LONG(self.lengthOfBytes(using: String.Encoding.utf8))
16
16
  let digestLen = Int(CC_MD5_DIGEST_LENGTH)
17
- let result = UnsafeMutablePointer<CUnsignedChar>.alloc(digestLen)
17
+ let result = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: digestLen)
18
-
18
+
19
19
  CC_MD5(str!, strLen, result)
20
-
20
+
21
21
  let hash = NSMutableString()
22
22
  for i in 0..<digestLen {
23
23
  hash.appendFormat("%02x", result[i])
24
24
  }
25
-
25
+
26
- result.dealloc(digestLen)
26
+ result.deallocate(capacity: digestLen)
27
-
27
+
28
28
  return String(format: hash as String)
29
29
  }
30
- }
30
+ }
31
31
  ```
32
32
 
33
33
  これで下記のような感じで使えるはずです。