小编swi*_*nub的帖子

如何在swift 4中创建一个可解码的枚举?

enum PostType: Decodable {

    init(from decoder: Decoder) throws {

        // What do i put here?
    }

    case Image
    enum CodingKeys: String, CodingKey {
        case image
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能完成这个?另外,让我说我改变了case这个:

case image(value: Int)
Run Code Online (Sandbox Code Playgroud)

如何使其符合Decodable?

编辑这是我的完整代码(不起作用)

let jsonData = """
{
    "count": 4
}
""".data(using: .utf8)!

        do {
            let decoder = JSONDecoder()
            let response = try decoder.decode(PostType.self, from: jsonData)

            print(response)
        } catch {
            print(error)
        }
    }
}

enum PostType: Int, Codable {
    case count = 4
}
Run Code Online (Sandbox Code Playgroud)

最终编辑 另外,它将如何处理这样的枚举?

enum …
Run Code Online (Sandbox Code Playgroud)

enums swift

116
推荐指数
7
解决办法
4万
查看次数

如何在swift 4 Codable中手动解码数组?

这是我的代码.但我不知道该如何设定价值.它必须手动完成,因为实际结构比这个例子稍微复杂一些.

有什么帮助吗?

struct Something: Decodable {
   value: [Int]

   enum CodingKeys: String, CodingKeys {
      case value
   }

   init (from decoder :Decoder) {
      let container = try decoder.container(keyedBy: CodingKeys.self)
      value = ??? // < --- what do i put here?
   }
}
Run Code Online (Sandbox Code Playgroud)

swift codable

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

如何在按钮边缘制作cornerRadius,以便在swiftUI中不会剪裁边缘

我正在试验 SwiftUI。我不知道如何获得带边框宽度的圆形按钮。下面是我尝试过的代码。

这是我的代码

struct ArrowButton : View {
    var body: some View {
        return Button(action: {}) {
            HStack {
                Text("SEE ALL")
                    .font(.headline)
                    .color(Color.init(red: 0.627, green: 0.776, blue: 0.965))
                Image(systemName: "arrow.right")
                    .font(Font.title.weight(.bold))
            }
        }
            .padding(.all, 9.0)
            .border(Color.init(red: 0.627, green: 0.776, blue: 0.965))
            .cornerRadius(5.0)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的观点 在此处输入图片说明

我应该使用什么修饰符

  1. 增加边框宽度?
  2. 删除如下所示的剪辑效果?

ios swiftui

7
推荐指数
2
解决办法
4530
查看次数

如何将SwiftUI视图设置为CollectionView的单元格

我发现Text使用自定义设计创建Label的SwiftUI 视图非常容易。因此,我想将其用作常规UIKit UICollectionViewCell的视图。

到目前为止,这是我的代码(您可以在Xcode 11中复制和粘贴)。

import SwiftUI
import UIKit

struct ContentView: View {
    var body: some View {
        CollectionComponent()
    }
}

#if DEBUG
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

struct CollectionComponent : UIViewRepresentable {
    func makeCoordinator() -> CollectionComponent.Coordinator {
        Coordinator(data: [])
    }

    class Coordinator: NSObject, UICollectionViewDataSource, UICollectionViewDelegate {
        var data: [String] = []

        init(data: [String]) {

            for index in (0...1000) {
                self.data.append("\(index)")
            }
        }

        func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: …
Run Code Online (Sandbox Code Playgroud)

uicollectionview uicollectionviewcell swift swiftui

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

如何使用SwiftUI获取鼠标位置?

我正在尝试在SwiftUI中显示弹出窗口。我已经准备好了,但是有没有办法使我的popoverView出现在我单击的位置?为此,我认为我需要获取鼠标位置。我该怎么做呢?

swift swiftui

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

我可以将 Bool 作为环境对象传递给 SwiftUI 中的子视图吗?

我有一个布尔

@State var isDragging: Bool
Run Code Online (Sandbox Code Playgroud)

如何将其作为环境对象传递给子视图?

swift swiftui

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

如何使用NSRegularExpression查找用泰语书写的单词

我有一个??????? 用泰语写的单词 - > 如何使用NSRegularExpression来匹配这个单词?我尝试使用确切的单词,但它不起作用.

它甚至没有在像regex101.com这样的网站上工作

这是我的代码(swift版本.但是在swift或obj中的答案很受欢迎).以下代码位于我的playground文件中.我总是变得虚伪,永远不会真实.

let labelString = "???????"
let regex = try NSRegularExpression(pattern: "???????", options: [])
let rangeOfFirstMatch = regex.rangeOfFirstMatchInString(labelString, options:.ReportProgress, range:NSRange(location: 0, length: labelString.characters.count))
if (!NSEqualRanges(rangeOfFirstMatch, NSRange(location: NSNotFound, length: 0))) {
    print(true)
} else {
    print(false)
}
Run Code Online (Sandbox Code Playgroud)

如果我用"man"这个词替换文本.我总是如此

regex nsregularexpression swift

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

如何使用Decodable协议将此JSON转换为Swift结构?

注意:我已经看过这个问题 - > 如何在Swift 4的可解码协议中使用自定义键?但它没有解释如何编码/解码枚举

这是我想要的结构:

struct MyStruct: Decodable {
    let count: PostType
}

enum PostType: Decodable {
    case fast(value: Int, value2: Int)
    case slow(string: String, string2: String)
}
Run Code Online (Sandbox Code Playgroud)

现在我知道我希望我的结构看起来如何,问题是:

  1. 我不知道这个init函数应该在PostType枚举中看起来像什么.

我使用下面的代码来帮助我快速构建JSON.

    let jsonData = """
    {
       "count": {
          "fast" :
           {
               "value": 4,
               "value2": 5
           }
       }
    }
    """.data(using: .utf8)!

    // Decoding
    do {
        let decoder = JSONDecoder()
        let response = try decoder.decode(MyStruct.self, from: jsonData)
        print(response)
    } catch {
        print(error)
    }
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?

Edit1 …

json swift codable

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

我们如何快速使用 NSSelectorFromString ?

我不明白为什么这总是失败。有什么帮助吗?显然,我不明白NSStringFromSelector是如何工作的?这是我的代码如下:

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let selector = NSSelectorFromString("test(value:value2:)")
        if self.responds(to: selector) {
            print("it works")
        } else {
            print("it failed")
        }
    }

    func test(value: Int, value2: Int) {
    }
}
Run Code Online (Sandbox Code Playgroud)

swift

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