小编FPL*_*FPL的帖子

SwiftUI 根据计算属性显示警报

我正在尝试根据计算属性在 Swift 中显示警报。基本上,每当用户单击按钮时,“round”的值就会更新。当进行超过 10 轮时,会显示警报。

为此,我创建了一个名为“showingAlert”的布尔变量。这必须是一个 @State var,以便当用户关闭警报时它会再次设置为 false。

但是,编译器告诉我像 @State 这样的属性包装器“不能应用于计算属性”:-(

这是我尝试过的代码:


@State var round = 0
@State var showingAlert:Bool {round > 10 ? true : false}

func result(player: Int, app: Int) {
if player > app {
 round += 1
 }
else {
 round += 1
}
}

var body: some View {
        Button(action: {self.result(player: 1, app: 1)}) {
        Text("Button")
        }
           .alert(isPresented: $showingAlert) {
                Alert(title: Text("title"), message: Text("message"), dismissButton: .default(Text("Continue"))
                )
} 
Run Code Online (Sandbox Code Playgroud)

有什么办法解决这个问题吗?我很想创建一个不显示错误消息的警报。

ios property-binding swift computed-properties swiftui

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

Pandas GroupBy 并将唯一值的计数添加为新列

问题

我正在尝试按列day和对 Pandas DataFrame 进行分组source,然后计算timestamp每个组的第 3 个 ( ) 的唯一实例(以了解每个源每天获得的点击次数),但出现此错误(完整回溯如下) : TypeError: 'method' object is not subscriptable

尝试

我的代码是:

df['timestamp_count'] = df.groupby(["source", "day"]).agg({"timestamp": "nunique"})
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望得到这样的结果(包括新列,timestamp_count

day    source    timestamp                timestamp_count
1      facebook  2018-08-04 11:16:32.416  2
1      facebook  2019-01-03 10:25:38.216  2
1      twitter   2018-10-14 13:26:22.123  1
2      facebook  2019-01-30 12:16:32.416  1
Run Code Online (Sandbox Code Playgroud)

当我运行时df.describe(),我看到它source是一个对象,但它day是一个整数。这可能是问题的一部分吗?查看其他问题后,似乎很可能是这些问题,但它们似乎都没有抛出相同的输入/错误组合。

任何人都可以帮助 Python 新手吗?非常感谢!

追溯

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-90-db5a002137ca> in <module>
----> 1 …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas pandas-groupby

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

为什么在使用 SwiftUI 时选择器绑定没有更新?

我刚刚开始学习 Swift(在 Swift UI 中甚至是更新的!)如果这是一个新手错误,我深表歉意。

我正在尝试编写一个非常简单的程序,其中用户从选择器中选择某人的名字,然后看到下面显示该人问候语的文本。

但是,当使用选择器选择新值时,绑定 var selectedPerson 不会更新。这意味着即使我选择了一个人,也不会显示“Hello Harry”这样的问候语,而是显示“Hello noone”。


struct ContentView: View {

var people = ["Harry", "Hermione", "Ron"]
@State var chosenPerson: String? = nil

    var body: some View {
        NavigationView {
            Form {
        Section {
    Picker("Choose your favourite", selection: $chosenPerson) {
        ForEach ((0..<people.count), id: \.self) { person in
            Text(self.people[person])
            }
        }
        }

        Section{
            Text("Hello \(chosenPerson ?? "no-one")")
        }
        }
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

(我已经包含了一个或两个原始格式,以防这有所作为)

我看过这个问题,似乎它可能是一个类似的问题,但添加.tag(person)Text(self.people[person])并没有解决我的问题。

如何让问候语显示所选人员的姓名?

swift swiftui

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