更新到 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,但这是一个肮脏的解决方案。也许我需要将指针存储在某处并在将来清理它?
我正在尝试cocoapods在我的 mac 系统中安装,但不幸的是由于以下错误无法安装。
我已经使用了以下命令。
sudo gem install -n /usr/local/bin cocoapods --pre
export GEM_HOME=~/.gems
export PATH=$GEM_HOME/bin:$PATH
gem install cocoapods
我在玩 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) 使用 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) 我正在尝试实现两个选项值之间的切换:
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?)'
我对你们的问题是我怎样才能设法在这个和可选值之间生成案例?
我会非常感谢你的帮助