所以,以前的使用方法:
let data = Data()
let value = Int(bigEndian: data.subdata(in: 0..<4).withUnsafeBytes { $0.pointee })
应该改成现在这样:
let data = Data()
let value = Int(bigEndian: data.subdata(in: 0..<4).withUnsafeBytes { $0.baseAddress!.bindMemory(to: Int.self, capacity: 4).pointee })
如题,swift5出现以后,这个withUnsafeBytes方法就被弃用了。Xcode提示信息是:所以,以前的使用方法:let data = Data()let value = Int(bigEndian: data.subdata(in: 0..<4).withUnsafeBytes { $0.pointee })应该改成现在这样:let data = Data()...
1 let s: NSRange = NSMakeRange(0, 1)
2 let at =
Unsafe
MutablePointer<NSRange>.alloc(100)
3 at .memory = s
4 let b = NSMakeRange(33, 33)
...
1.错误信息
with
Unsafe
Byte
s' is
deprecated
: use `with
Unsafe
Byte
s<R>(_: (
Unsafe
RawBufferPointer) throws -> R) rethrows -> R` instead
2.错误位置
func md5() -> String {
let str = self.cString(using: String.Encoding.utf8)
let strLen = CUnsignedInt(self.lengthOf
Byte
s(using: String.Encoding.utf8))
let digestLen = Int(C...
let name = "Neil"
name[2]
// 'subscript(_:)' is unavailable: cannot subscript String with an Int, use a String.Index instead.
这是为什么呢? 简单的回答是:Swift认为字符串是由一个个**字形群集 (grapheme clusters)**组成的,字形群集的大小不固定所以不能用