我有一个符合@ObservableObject 协议的类,并从它创建了一个子类,它有自己的变量,带有@Published 属性包装器来管理状态。
使用子类时似乎忽略了@published 属性包装器。有谁知道这是否是预期行为以及是否有解决方法?
我正在运行 iOS 13 Beta 8 和 xCode Beta 6。
这是我所看到的一个例子。更新MyTestObjectText 视图上的 TextField 时,会使用 aString 值正确更新。如果我更新MyInheritedObjectTextField,则不会在 Text 视图中更新 anotherString 值。
import SwiftUI
class MyTestObject: ObservableObject {
@Published var aString: String = ""
}
class MyInheritedObject: MyTestObject {
@Published var anotherString: String = ""
}
struct TestObserverWithSheet: View {
@ObservedObject var myTestObject = MyInheritedObject()
@ObservedObject var myInheritedObject = MyInheritedObject()
var body: some View {
NavigationView {
VStack(alignment: .leading) {
TextField("Update aString", text: self.$myTestObject.aString) …Run Code Online (Sandbox Code Playgroud) 我正在尝试 ipadOS16/macOS13 中提供的新导航 API,但在弄清楚如何在 macOS 13 上将 NavigationSplitView、NavigationStack 和 NavigationLink 组合在一起时遇到了一些麻烦(在 Macbook Pro M1 上进行测试)。相同的代码在 ipadOS 上可以正常工作。
我正在使用两列 NavigationSplitView。在“详细信息”部分中,我有一个SampleModel1包含在 NavigationStack 中的实例列表。在列表中,我已为SampleModel1和SampleModel2实例应用了 navigationDestination。
SampleModel1当我从列表中选择一个实例时,我会导航到一个详细视图,该视图本身包含一个SampleModel2实例列表。我的目的是在单击其中一个实例时进一步导航到 NavigationStack SampleModel2,但不幸的是这似乎不起作用。实例SampleModel2是可选择的,但没有发生导航。
当我完全删除 NavigationSplitView 并仅使用 NavigationStack 时,问题不会出现,并且我可以成功导航到SampleModel2实例。
这是我的示例代码:
import SwiftUI
@main
struct testingnavigationApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
// Sample model definitions used to trigger navigation with navigationDestination API.
struct SampleModel1: Hashable, Identifiable …Run Code Online (Sandbox Code Playgroud) 我试图了解Python 3 asyncio模块,特别是使用传输/协议API.我想创建一个发布/订阅模式,并使用asyncio.Protocol该类来创建我的客户端和服务器.
目前,我已启动并运行服务器,并侦听传入的客户端连接.客户端能够连接到服务器,发送消息并接收回复.
我希望能够保持TCP连接存活并维护一个允许我添加消息的队列.我试图找到一种方法来使用低级API(传输/协议),但有限的asyncio docs/examples online似乎都进入了高级API - 使用流等等.有人能够指出我如何实现这个目标的正确方向?
这是服务器代码:
#!/usr/bin/env python3
import asyncio
import json
class SubscriberServerProtocol(asyncio.Protocol):
""" A Server Protocol listening for subscriber messages """
def connection_made(self, transport):
""" Called when connection is initiated """
self.peername = transport.get_extra_info('peername')
print('connection from {}'.format(self.peername))
self.transport = transport
def data_received(self, data):
""" The protocol expects a json message containing
the following fields:
type: subscribe/unsubscribe
channel: the name of the channel
Upon receiving a valid message the protocol registers
the …Run Code Online (Sandbox Code Playgroud) swift ×2
swiftui ×2
inheritance ×1
ios ×1
ios13 ×1
python ×1
swiftui-navigationsplitview ×1
tcp ×1