标签: swift5.2

警告:'UnsafeBufferPointer<T>' 的初始化导致悬空的缓冲区指针

更新到 Swift 5.2 / Xcode 11.4 后收到以下代码警告:

extension Data {

    init<T>(from value: T) {
        var value = value
        let pointer = UnsafeBufferPointer(start: &value, count: 1)
        self.init(buffer: pointer)
    }

    func to<T>(type: T.Type) -> T {
        return self.withUnsafeBytes { $0.load(as: T.self) }
    }
}
Run Code Online (Sandbox Code Playgroud)

在线let pointer = UnsafeBufferPointer(start: &value, count: 1)我得到了

'UnsafeBufferPointer' 的初始化导致悬空的缓冲区指针

我可以使用@silenceWarning,但这是一个肮脏的解决方案。也许我需要将指针存储在某处并在将来清理它?

unsafe-pointers swift swift5.2 xcode11.4

32
推荐指数
3
解决办法
7338
查看次数

安装 cocoapods 时出错“sudo gem install cocoapods” MacOs Catalina

我正在尝试cocoapods在我的 mac 系统中安装,但不幸的是由于以下错误无法安装。

我已经使用了以下命令。

  • sudo gem install -n /usr/local/bin cocoapods --pre

  • export GEM_HOME=~/.gems export PATH=$GEM_HOME/bin:$PATH gem install cocoapods

在此处输入图片说明

objective-c cocoapods swift swift5.2

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

观察 SwiftUI TextField 上的变化

我在玩 Swift UI。我创建了一个包含所有我想要的元素的表格视图(一个列表)。按键盘上的 Enter 键时,TextField 更改也有效。很高兴能如此快速地构建一个表格视图;)。

但现在我想跟踪文本字段上的每一个变化。每次用户输入另一个文本时,我都想发送一个触发搜索的请求。

这怎么能在我的代码中完成?我也在这里阅读了这个文档https://developer.apple.com/documentation/combine/receiving_and_handling_events_with_combine

我现在不知道如何在我的结构中使用它。

此处建议的解决方案TextField changes in SwiftUI不起作用(不再)

我会很感激你能与我分享的每一个提示和每一个想法。我正在寻找解决方案的时间:(。

我的代码如下所示:

import Foundation
import SwiftUI

struct MyListView: View {
    @ObservedObject var viewModel: MyViewModel

    @State private var query = ""

    var body: some View {

        NavigationView {
            List {
                // how to listen for changes here?
                // if I add onEditingChange here, Get the value only after the user finish search (by pressing enter on the keyboard)
                TextField(String.localizedString(forKey: "search_bar_hint"), text: self.$query) {
                    self.fetchListing()
                } …
Run Code Online (Sandbox Code Playgroud)

ios swift combine swift5.2

6
推荐指数
2
解决办法
3120
查看次数

获取形状以在 SwiftUI 中动态查看

使用 Swift 5.2 我想创建一个函数来动态更改形状

我有一个像

import SwiftUI

struct CardView: View {
    let suit : Suite
    let rank : Rank
    var body: some View {
        getShape(suite: .heart)
        .fill(Color.red)  // .fill(suit.color)
        .frame(width: 100, height: 100)
     }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个协议返回类型为 Shape 的函数,我在下面的示例中将自定义形状替换为通用

func getShape(suite:Suite) -> Shape {
    switch suite {
    case .heart:
        return Circle() // Heart()
    case .diamond:
        return Rectangle() // Diamond()
    case .spade:
        return Circle() // Heart()
    case .club:
        return Circle() // Club()

    }
}
Run Code Online (Sandbox Code Playgroud)

我不能对某些不透明类型使用不透明类型,因为我返回不同的类型并且出现编译错误

Function declares an opaque …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swift5.2

5
推荐指数
3
解决办法
1035
查看次数

Swift:在两个可选值之间切换

我正在尝试实现两个选项值之间的切换:

import UIKit

var numOne: Int?
var numTwo: Int?

func doSomething() {
    switch (numOne, numTwo) {
    case (!nil, nil):
        print("something")
    case (_ == _):
        print("equal")
    default:
        break
    }
}

doSomething()

Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

在第一种情况下,我收到此错误:

'nil' is not compatible with expected argument type 'Bool'

在第二种情况下,我收到了另一个错误:

Expression pattern of type 'Bool' cannot match values of type '(Int?, Int?)'

我对你们的问题是我怎样才能设法在这个和可选值之间生成案例?

我会非常感谢你的帮助

iphone ios swift swift5.2 xcode11.4

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