小编Joa*_*son的帖子

Swift:nil需要一个上下文类型

我想在代码中实现以下功能:

class MyService {

    let mySubject = BehaviorSubject<MyData>(value: nil)

    //....

}
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到"nil需要上下文类型"错误.我希望这个主题是"空的",直到我真正把东西放在那里.那么如何通过nil作为参数呢?我可以将它投射到我自己的类型以使其工作吗?

xcode ios swift rx-swift

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

SwiftUI List 如何识别 macOS 上选择的项目

这是我根据这个答案得到的内容。该代码当前允许用户选择一个单元格,但我无法区分选择了哪个单元格或执行任何代码来响应该选择。总之,如何根据所选单元格的名称执行代码并在单击时执行。当前单击的单元格以蓝色突出显示,但我想识别它并根据该选择采取相应的操作。注意:我不想在编辑模式下选择单元格。另外,如何以编程方式选择单元格而无需单击?

struct OtherView: View {
    @State var list: [String]
    @State var selectKeeper = Set<String>()

    var body: some View {
        NavigationView {
            List(list, id: \.self, selection: $selectKeeper) { item in
                Text(item)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)



这是演示选择的 gif

macos swiftui swiftui-list

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

mac app打开后如何执行命令

我想在我的应用程序打开系统终端应用程序后执行命令。我使用以下命令打开终端应用程序:

let url = NSURL(fileURLWithPath: "/System/Applications/Utilities/Terminal.app", isDirectory: true) as URL
let configuration = NSWorkspace.OpenConfiguration()
NSWorkspace.shared.openApplication(at: url, configuration: configuration, completionHandler: { app, error in
    //app.executeMyCommand("echo hello")
})
Run Code Online (Sandbox Code Playgroud)

打开后我想执行命令“echo hello”,如completionHandler中所示。如何才能实现这一点呢?

macos swift

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

Kotlin 枚举就像在 swift 中一样

我有快速枚举

enum Type {
    case bool(Bool)
    case int(Int)
    case array([String])
}
Run Code Online (Sandbox Code Playgroud)

不明白如何将其转换为 kotlin 代码,我确实是这样的:

enum class AnswerSheetType {
    BOOL,
    INT,
    ARRAY
}
Run Code Online (Sandbox Code Playgroud)

但是我如何将变量传递给枚举类型。例如,我想要创建方法,该方法将返回带变量的类型,如下所示(快速代码):

func marks(for id: String) -> Type {
    let answer = answers?[id]
    
    if let boolAnswer = answer as? Bool {
        return .bool(boolAnswer)
    }
    if let intAnswer = answer as? Int {
        return .int(intAnswer)
    }
    if let arrayAnswer = answer as? [String] {
        return .array(arrayAnswer)
    }
}
Run Code Online (Sandbox Code Playgroud)

kotlin

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

在 JavaScript 中将变量定义为块

在 Swift 中,我可以这样做来定义一个变量:

let foo: String = {
    if bar {
        return "42"
    } else {
        return "43"
    }
}()
Run Code Online (Sandbox Code Playgroud)

如何在 JavaScript 中定义这样的变量?我知道你可以将一个变量定义为未定义并在 if 块中重新定义它,但在我看来这是一个丑陋的语法,因为“foo”会重复 3 次而不是 Swift 示例中的 1 次:

let foo

if (bar) {
    foo = "42"
} else {
    foo = "43"
}
Run Code Online (Sandbox Code Playgroud)

javascript

4
推荐指数
2
解决办法
143
查看次数

SQL UNION 与 OR、INTERSECT 与 AND

我想知道 INTERSECT 和 AND 语句以及 UNION 语句和 OR 语句之间的区别是什么。是否存在建议使用其中之一的特定场景,并且我可以始终使用 OR/AND 而不是 UNION/INTERSECT 吗?

sql union intersect

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

@State var 未按 LazyVGrid 中的预期更新

我无法理解为什么我的变量“selectedItem”在此代码的一部分中更新,而不是在另一部分中更新。我的目标是做到这一点,以便当您点击网格中的图像时,它将所选图像名称传递给 ImageDetailView (理想情况下我希望它是一个导航链接,但一张表对我来说更容易测试..一步一步)。

在我有的地方,print(selectedItem)它会按预期在控制台中打印 LazyVGrid 的点击图像的名称。惊人的。

但随后打开的工作表是空白的,因为它仍在寻找“测试”...控制台显示一条消息“在资产目录中找不到名为“测试”的图像...”

为什么工作表仍然使用“test”的初始化值?而不是更新后的值?

结构ImagesView:视图{

@State var gridLayout: [GridItem] = [ GridItem() ]
var title: String
var imageSet = [Photo]()
@State private var selectedItem = "test"

var body: some View {
    ZStack {
        Color.black.edgesIgnoringSafeArea(.all)
        GeometryReader {  reader in
            ScrollView {
                LazyVGrid(columns: gridLayout, alignment: .center, spacing: 10) {
                    ForEach(imageSet.indices) { index in
                        Image(imageSet[index].name)
                            .resizable()
                            .onTapGesture {
                                showImageDetailView = true
                                selectedItem = imageSet[index].name
                                print(selectedItem)                                  
                            }                              
                            )}
                        .padding(.horizontal, 10)
                        .padding(.bottom, 25)
                    
                }
                .sheet(isPresented: $showImageDetailView, content: {
                    ImageDetailView(selectedItem: …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui ios14

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

此处无法出现属性列表 firebase-ios-sdk,Xcode 15.0 错误

我已将 Xcode 更新到 15.0,现在开始出现此错误。

    ABSL_CONST_INIT extern "C" const int64_t kFIRFirestoreCacheSizeUnlimited =
            Settings::CacheSizeUnlimited;
   // An attribute list cannot appear here
Run Code Online (Sandbox Code Playgroud)

我已经经历了github 上的XCode 15.0 Release - firebase-ios-sdk bug: An attribute list不能出现在此处的问题,但它不提供对 swiftPackage manger 的支持。

Xcode 15.0 错误

xcode ios firebase

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

如何在异常后继续循环do

程序读取异常后停止.

需要一些帮助,如何使它继续循环的开始.

我尝试了继续声明,但它不起作用或者我的错误.

package labexer5a;
import java.util.*;

public class LabExer5A {

    public static void main(String[] args) {
        int max = 50;
        int min = 1;

        int secretNumber;
        secretNumber = (int)(Math.random() * 49 + 1);

        Scanner keyboard = new Scanner(System.in);
        int guess;
        int count = 0;
        try{
            do{
                System.out.println("Guess a number from 1 to 50");
                guess = keyboard.nextInt();
                count ++;

                if(guess == secretNumber){
                    if(count> 1){
                    System.out.println("You got it in " + count + " attempt(s)");
                    }
                    else{
                        System.out.println("You got it in …
Run Code Online (Sandbox Code Playgroud)

java

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

项目“project”已损坏,由于解析错误而无法打开。检查项目文件中的无效编辑...控制冲突

我正在尝试将 master 合并到我的功能分支中,并出现此错误。我环顾了互联网,并尝试自己调试这个问题,包括处理.pbxproj文件的冲突(没有显示)。我所走的所有道路都没有结果。我恳请我应该采取的任何方向(即查看哪些文件)。先感谢您。

git xcode ios

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

标签 统计

ios ×4

swift ×3

xcode ×3

macos ×2

swiftui ×2

firebase ×1

git ×1

intersect ×1

ios14 ×1

java ×1

javascript ×1

kotlin ×1

rx-swift ×1

sql ×1

swiftui-list ×1

union ×1