导入 XuXuCheck 工程(iOS 干化学尿液试纸分析 App)
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。 为控制仓库体积做了两处删减: - 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片 (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该 xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录, 只保留 ios-arm64 与 ios-arm64_x86_64-simulator。 - 移除全部 .DS_Store 与 xcuserdata/。 已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED, ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号 (OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。 仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// XuXuCheckApp.swift
|
||||
// XuXuCheck
|
||||
//
|
||||
// Created by henseycai on 2025/5/26.
|
||||
//
|
||||
|
||||
//some references
|
||||
//https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-some-code-when-state-changes-using-onchange
|
||||
|
||||
//https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)
|
||||
|
||||
//https://github.com/yannickl/DynamicColor/tree/master
|
||||
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct XuXuCheckApp: App {
|
||||
|
||||
@State var status = Status()
|
||||
@State var loginViewModel = LoginViewModel()
|
||||
@State var cameraViewModel = CameraViewModel()
|
||||
//https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro
|
||||
//https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app
|
||||
@State var loginStatus = LoginStatus()
|
||||
@State var webViewModel = WebViewModel()
|
||||
|
||||
init(){
|
||||
loginStatus.isLogin = Storage.shared.isLogin
|
||||
|
||||
getSelfData()
|
||||
}
|
||||
|
||||
func getSelfData(){
|
||||
if(loginStatus.isLogin == false){
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
APIService.instance.getSelf(completion: {(model,error) in
|
||||
if let error = error{
|
||||
|
||||
debugPrint(error)
|
||||
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//Storage.Print()
|
||||
|
||||
if let model = model {
|
||||
Storage.shared.userid = model.data?.userinfo?.user_id ?? 0
|
||||
//Storage.shared.usertoken = model.data?.usertoken ?? ""
|
||||
if let usertoken = model.data?.usertoken {
|
||||
Storage.shared.usertoken = usertoken
|
||||
}
|
||||
Storage.shared.mobile = model.data?.userinfo?.user_mobile ?? ""
|
||||
Storage.shared.email = model.data?.userinfo?.user_email ?? ""
|
||||
Storage.shared.username = model.data?.userinfo?.user_nickname ?? ""
|
||||
Storage.shared.useravatar = model.data?.userinfo?.user_avatar ?? ""
|
||||
|
||||
Storage.shared.member_id = model.data?.defaultMember?.member_id ?? 0
|
||||
Storage.shared.member_name = model.data?.defaultMember?.member_name ?? ""
|
||||
Storage.shared.member_avatar = model.data?.defaultMember?.member_avatar ?? ""
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
ContentView()
|
||||
.environment(status)
|
||||
.environment(loginViewModel)
|
||||
.environment(cameraViewModel)
|
||||
.environment(loginStatus)
|
||||
.environment(webViewModel)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user