标签: swift5

如何使用可编码打印 alamofire 响应的结果

对于 codable 新手,我尝试使用 codable 为 alamofire 创建一个类,并尝试发出 api 请求。我收到一些 Swift.DecodingError.typeMismatch 错误,并且由于我的模型类而发现了它。现在我需要的是在解码之前以 JSON(String) 格式打印 alamofire 响应,以便我可以识别 typeMismatch

static func performRequest<T:Decodable>(route:APIRouter, decoder: JSONDecoder = JSONDecoder(), completion:@escaping (Result<T,Error>)->Void) -> DataRequest {

    return AF.request(route)
        .responseDecodable (decoder: decoder){ (response: DataResponse<T>) in
            print(response.result)
            completion(response.result)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要一些代码来打印 alamofire 的实际结果

ios alamofire codable swift5

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

我应该将什么传递给.success()以获取`Result &lt;Void,Error&gt;`?

我有一个网络请求,但是我并不真正在乎成功响应,因此我将Result<Void, Error>for用作返回值。问题是当我分配.success()给它时,编译器返回以下错误:

呼叫中的参数#1缺少自变量

我已经尝试通过emptynil但是都无法通过编译。

代码是这样的:

var result: Result<Void, Error>?
result = .success()
Run Code Online (Sandbox Code Playgroud)

我该如何运作?

ios swift swift5

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

使用 Swift @propertyWrapper 作为动态默认值?

我需要一个 Swift 属性,如果该值尚未设置,则默认为另一个值。

\n\n

可以使用后备存储私有属性来实现。例如,对于num应该默认为 global 的属性defaultNum,它的工作方式如下:

\n\n
var defaultNum = 1\n\nclass MyClass {\n  var num: Int {\n    get { _num ?? defaultNum }\n    set { _num = newValue }\n   }\n\n  private var _num: Int?\n}\n\nlet c = MyClass()\nprint("initial \\(c.num)") // == 1 \xe2\x9c\x85\n\n// changing the default changes the value returned\ndefaultNum = 2\nprint("dynamic \\(c.num)") // == 2 \xe2\x9c\x85\n\n// once the property is set, returns the stored value\nc.num = 5\nprint("base    \\(c.num)") // == 5 \xe2\x9c\x85\n
Run Code Online (Sandbox Code Playgroud)\n\n …

swift swift5 property-wrapper

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

如何在 Swift UI 中添加 3D 形状?

我想知道如何在 swift UI 中添加 3D 形状(例如球体)

我尝试添加一个场景并在 swift UI 中使用它,但收到一条错误消息

//SceneKit

class myscene: SCNScene{
 override init(){
     super.init()
 }
 required init?(coder: NSCoder) {
     fatalError("init(coder: ) has not been implemented")
 }
}

//Swift UI 

struct ContentView: View {
 var body: some View {

     let sphere = SCNSphere(radius: 2.0)
     sphere.firstMaterial?.diffuse.contents = UIColor.blue
     let spherenode = SCNNode(geometry: sphere)
     spherenode.position = SCNVector3(x: 0.0, y: 3.0, z: 0.0)
 }
}

Run Code Online (Sandbox Code Playgroud)

网上的错误消息var body: some View {如下:

Function declares an opaque return type, but has no …

scenekit swift swift-playground swift5 swiftui

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

SwiftUI Init 方法不适用于 ObservedObject 声明

我正在尝试使用 Swift UI 在 Swift 中创建一个选项卡式应用程序。我正在使用 @ObservedObject 来存储应呈现的当前视图名称。

我试图更改 UI 选项卡栏的背景颜色,但是每次我添加 init 来覆盖该方法时,都会开始抛出错误,例如“传递给不带参数的调用的参数”。

我在下面附上了控制器代码的片段。非常感谢任何解决此问题的帮助。

import SwiftUI

struct ContentView: View {
    @State private var selection = 0

    @ObservedObject var coreRouter: CoreRouter

    init() {
         UITabBar.appearance().backgroundColor = UIColor.blue
     }

    var body: some View {
        TabView(selection: $selection){
            Text("First Screen")
                .font(.title)
                .tabItem {
                    VStack {
                        Image(systemName: "house")
                        Text("Home")
                    }
            }
            .tag(0)
            Text("Second View")
                .font(.title)
                .tabItem {
                    VStack {
                        Image("calendar")
                        Text("New Items")
                    }
            }
            .tag(1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift5 swiftui

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

如何使用 UITextview 在 ios swift 5 中拨打电话?

我有带电话号码的 UITextView。在 ios Swift 5 中单击 UITextView 中的电话号码时如何拨打电话。

xcode uitextview swift5

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

如何使用 swiftUI 沿自定义路径移动视图/形状?

似乎没有一种沿着自定义路径(尤其是弯曲路径)移动视图/形状的直观方法。我发现了几个 UIKit 库,它们允许视图在 Bézier 路径(DKChainableAnimationKit、TweenKit、Sica 等)上移动,但我不太习惯使用 UIKit 并不断遇到错误。

目前使用 swiftUI 我手动这样做:

import SwiftUI
struct ContentView: View {
    @State var moveX = true
    @State var moveY = true
    @State var moveX2 = true
    @State var moveY2 = true
    @State var rotate1 = true
    var body: some View {
        ZStack{
            Circle().frame(width:50, height:50)
                .offset(x: moveX ? 0:100, y: moveY ? 0:100)
                .animation(Animation.easeInOut(duration:1).delay(0))
                .rotationEffect(.degrees(rotate1 ? 0:350))
                .offset(x: moveX2 ? 0:-100, y: moveY2 ? 0:-200)
                .animation(Animation.easeInOut(duration:1).delay(1))

                .onAppear(){
                    self.moveX.toggle();
                    self.moveY.toggle();
                    self.moveX2.toggle();
                    self.moveY2.toggle();
                    self.rotate1.toggle();
                    //    self..toggle()
            } …
Run Code Online (Sandbox Code Playgroud)

xcode swift swift5 swiftui

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

你如何在 Swift 字典中找到前 3 个最大值?

我了解到我可以通过下面的代码显示字典中最高的键和值

// champions dictionary
var champions = ["Ekko": 20, "Ahri": 10, "Vayne": 2, "Neeko": 25, "Zed": 6]

let greatestChampion = champions.max { a, b in a.value < b.value }
print greatestChampion // optional(("Ekko": 20))

Run Code Online (Sandbox Code Playgroud)

我的问题是如何显示 3 个价值最高的英雄?示例结果将是

print greatestChampion // optional(("Ekko": 20, "Neeko": 25, "Ahri": 10))
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我很想学习如何做到这一点。

swift swift5

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

Xcode v12.5 - 打开 SQlite DB 时出现构建错误

在将 Xcode 从 v12.4 升级到 12.5 后,在 React-Native 项目上工作,出现构建错误。用于在 Xcode v12.4 中完美运行

我已经缩小到导致此构建错误的行:

var db: OpaquePointer?
let _path = path ?? "widgetdb.sqlite3";
sqlite3_open(_path, &db) <-- This is the culprit!
Run Code Online (Sandbox Code Playgroud)

错误日志:

Undefined symbols for architecture x86_64:
  "Swift._ArrayBuffer._copyContents(initializing: Swift.UnsafeMutableBufferPointer<A>) -> (Swift.IndexingIterator<Swift._ArrayBuffer<A>>, Swift.Int)", referenced from:
      generic specialization <serialized, Swift._ArrayBuffer<Swift.Int8>> of Swift._copyCollectionToContiguousArray<A where A: Swift.Collection>(A) -> Swift.ContiguousArray<A.Element> in SQLiteDatabase.o
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!谢谢!!

sqlite ios react-native swift5 xcode12.5

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

Swift 枚举具有不同类型的关联值

我有一个这样的 Swift 枚举:

public enum AnimatationType {

    case position(Float)
    case position([Keyframe<Float>])
    case scale(Float)
    case scale([Keyframe<Float>])
    case rect(CGRect)
    case rect([Keyframe<CGRect>])
    case transform(CGAffineTransform)
    case transform([Keyframe<CGAffineTransform>])
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

正如我们所看到的,对于每种类型,都有两个可能的值 - 类型 T 的固定值或具有值类型 T ([Keyframe]) 的关键帧数组。我想知道我是否可以做些什么来避免在枚举中重复相同的名称并合并两个枚举大小写类型?或者我以错误的方式建模?

enums ios swift swift5

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