GVKun编程网logo

Swift UI MacOS ProgressView使用未解析的标识符'ProgressView'(未解析的外部符号_main)

3

如果您想了解SwiftUIMacOSProgressView使用未解析的标识符'ProgressView'的相关知识,那么本文是一篇不可错过的文章,我们将对未解析的外部符号_main进行全面详尽的解释

如果您想了解Swift UI MacOS ProgressView使用未解析的标识符'ProgressView'的相关知识,那么本文是一篇不可错过的文章,我们将对未解析的外部符号_main进行全面详尽的解释,并且为您提供关于1. docker 在 macOS 中的架构 2. 在 macOS 系统中,docker pull 下来的镜像存储在哪里?、==> 修复 /usr/local/opt/macos-updater/bin/macos-updater 权限从 755 到 444、Appium Inspector 在 macOS 上加载整个屏幕而不是指定的 macOS 应用程序、Colored ProgressView的有价值的信息。

本文目录一览:

Swift UI MacOS ProgressView使用未解析的标识符'ProgressView'(未解析的外部符号_main)

Swift UI MacOS ProgressView使用未解析的标识符'ProgressView'(未解析的外部符号_main)

如何解决Swift UI MacOS ProgressView使用未解析的标识符''ProgressView''

enter image description here

我试图在macOS项目中添加一个ProgressView,但是它给我以下错误,在Internet上查找找不到任何解决方案。

有人可以帮我吗?

解决方法

此 ProgressView 仅适用于 MacOs 11,您可以在此链接中看到 https://developer.apple.com/documentation/swiftui/progressview

您可以使用 NSProgressIndicator 并将其包装成 NSViewRepresentable,如下所示:

import Swift
import SwiftUI

public struct ActivityIndicator {
    public enum Style {
        case medium
        case large
    }
    
    private var isAnimated: Bool = true
    private var style: Style? = Style.medium
    
    public init() {
        
    }
}

#if os(macOS)

import Cocoa
import AppKit

extension ActivityIndicator: NSViewRepresentable {
    public typealias Context = NSViewRepresentableContext<Self>
    public typealias NSViewType = NSProgressIndicator
    
    public func makeNSView(context: Context) -> NSViewType {
        let nsView = NSProgressIndicator()
        nsView.isIndeterminate = true
        nsView.style = .spinning
        nsView.sizeToFit()
        nsView.layer?.transform = CATransform3DMakeScale(1.0,0.6,0.0);
        nsView.controlSize = .small
        return nsView
    }
    
    public func updateNSView(_ nsView: NSViewType,context: Context) {
        isAnimated ? nsView.startAnimation(self) : nsView.stopAnimation(self)
    }
}

#endif

1. docker 在 macOS 中的架构 2. 在 macOS 系统中,docker pull 下来的镜像存储在哪里?

1. docker 在 macOS 中的架构 2. 在 macOS 系统中,docker pull 下来的镜像存储在哪里?

docker 在 macOS 中的架构:

在 macOS 中,docker 的实现跟在其它 Linux 系统中略有不同,在其它 Linux 系统中,操作系统本身就是 docker 容器的宿主机,docker 镜像都是直接存储在宿主机本身的文件系统中,比如我们通过 docker info 命令可以看到 docker 的根目录是:

$ docker info|grep "Docker Root Dir"
Docker Root Dir: /var/lib/docker

但是在 macOS 下,我们直接查看这个目录,其实是根本不存在的。

$ ls /var/lib/docker
ls: /var/lib/docker: No such file or directory

Docker 宿主机是谁

那么这个目录到底在哪里?实际上是在一个 QEMU 虚拟机中,当我们在 macOS 中安装完 docker 并启动,就是启动了一个虚拟机,这个虚拟机的整个内容全部都在一个文件里,可以在 docker 程序属性界面中看到这个文件的路径,比如在我的机器上,路径就是(<YourUserName> 替换为你的 mac 电脑的用户名)/Users/<YourUserName>/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2,该文件通常比较大,特别是安装了多个 docker 镜像之后,会轻易占用到数十 GB 的空间。 那么,我们是否可以登录这个虚拟机来确认这点呢?使用 macOS 自带的 screen 命令可以登录该台虚拟机。如下,可以看到这是一个拥有非常新的 Linux 4.9.38 版本内核的虚拟机,在这个虚拟机中才有 /var/lib/docker 目录,只有 2 颗 CPU,总共有 2GB 内存。

$ screen /Users/Kamus/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

/ # uname -a
Linux moby 4.9.38-moby #1 SMP Wed Jul 26 10:02:46 UTC 2017 x86_64 Linux
/ # hostname
moby

/ # ls /var/lib/docker
aufs        containers  network     swarm       tmp-old     volumes
builder     image       plugins     tmp         trust

/ # cat /proc/cpuinfo|grep "processor"
processor       : 0
processor       : 1
/ # cat /proc/meminfo |grep "MemTotal"
MemTotal:        2047040 kB

在 screen 的窗口按组合键 control+a d(先按 control+a,再按 d)可以暂时 dettach 出这个 screen,screen -r 可以重新打开窗口。更多的 screen 命令,可以自行 man screen 来查看。 所以现在我们可以明确一个概念,macOS 本身并不是以后将运行的 docker 容器的宿主机,而这个 Linux 虚拟机才是真正的宿主机。这台机器的主机名是 moby,这正是 docker 项目社区版的名称。

Docker 宿主机与 macOS 操作系统的目录共享

由于如下共享文件夹功能的存在,在这个虚拟机中可以访问并更新 macOS 操作系统本地的目录。 我们还是在 screen 中看一下这些共享目录的情况。

/ # df -h|grep osxfs
osxfs                   465.1G    324.1G    140.7G  70% /private
osxfs                   465.1G    324.1G    140.7G  70% /tmp
osxfs                   465.1G    324.1G    140.7G  70% /Volumes
osxfs                   465.1G    324.1G    140.7G  70% /Users
/ # cd /Users
/Users # ls
Guest   Kamus   Shared

可以看到,确实 macOS 操作系统中的目录在虚拟机中是可以直接访问的,而且更方便的地方是,在虚拟机中自动挂载的目录路径跟 macOS 中的路径是完全相同的,比如我的个人主目录无论是在 macOS 中还是在这个虚拟机中,都是 / Users/Kamus。

在 macOS 系统中,docker pull 下来的镜像存储在哪里?

综上所述: 存储在文件 Docker.qcow2 中,该文件在 macOS 系统中位置: /Users/<YourUserName>/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

  • 出处:http://www.dbform.com/html/2017/3705.html

==> 修复 /usr/local/opt/macos-updater/bin/macos-updater 权限从 755 到 444

==> 修复 /usr/local/opt/macos-updater/bin/macos-updater 权限从 755 到 444

如何解决==> 修复 /usr/local/opt/macos-updater/bin/macos-updater 权限从 755 到 444

我创建了一个水龙头 (dindin-glitch/dindin-nibnib-formulae),但是当我安装我制作的公式时,它会输出:

/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/dindin-glitch/homebrew-dindin-nibnib-formulae/Formula/macos-updater.rb
rm /usr/local/bin/macos-updater
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mas.rb
==> Downloading https://github.com/dindin-glitch/macos-updater/archive/1.0.6.tar.gz
/usr/bin/curl --disable --globoff --show-error --user-agent Homebrew/3.1.8-11-g2e9d4ff\\ \\(Macintosh\\;\\ Intel\\ Mac\\ OS\\ X\\ 11.3.1\\)\\ curl/7.64.1 --header Accept-Language:\\ en --retry 3 --location --silent --head --request GET https://github.com/dindin-glitch/macos-updater/archive/1.0.6.tar.gz
Already downloaded: /Users/odinb/Library/Caches/Homebrew/downloads/445d31097754c50d3754b9e185668794bf954219d0e0026bd02f03b5668ac8ee--macos-updater-1.0.6.tar.gz
==> Verifying checksum for ''445d31097754c50d3754b9e185668794bf954219d0e0026bd02f03b5668ac8ee--macos-updater-1.0.6.tar.gz''
==> Reinstalling dindin-glitch/dindin-nibnib-formulae/macos-updater 
/usr/local/Homebrew/Library/Homebrew/shims/scm/git --version
git config --get homebrew.private
git config --get homebrew.analyticsdisabled
git config --get homebrew.analyticsdisabled
/usr/bin/sandBox-exec -f /private/tmp/homebrew20210519-64449-1pw99l4.sb nice ruby -W1 -- /usr/local/Homebrew/Library/Homebrew/build.rb /usr/local/Homebrew/Library/Taps/dindin-glitch/homebrew-dindin-nibnib-formulae/Formula/macos-updater.rb --verbose --debug
/usr/local/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/mas.rb
tar --extract --no-same-owner --file /Users/odinb/Library/Caches/Homebrew/downloads/445d31097754c50d3754b9e185668794bf954219d0e0026bd02f03b5668ac8ee--macos-updater-1.0.6.tar.gz --directory /private/tmp/d20210519-64450-i3w83g
cp -pR /private/tmp/d20210519-64450-i3w83g/macos-updater-1.0.6/. /private/tmp/macos-updater-20210519-64450-77osgr/macos-updater-1.0.6
chmod -Rf +w /private/tmp/d20210519-64450-i3w83g
==> ./configure /usr/local/Cellar/macos-updater/1.0.6/bin
/usr/local/Homebrew/Library/Homebrew/shims/scm/git --version
==> Cleaning
==> Fixing /usr/local/opt/macos-updater/bin/macos-updater permissions from 755 to 444
==> Finishing up
ln -s ../Cellar/macos-updater/1.0.6/bin/macos-updater macos-updater
/usr/bin/sandBox-exec -f /private/tmp/homebrew20210519-64504-87j2fy.sb nice ruby -W1 -I $LOAD_PATH -- /usr/local/Homebrew/Library/Homebrew/postinstall.rb /usr/local/Homebrew/Library/Taps/dindin-glitch/homebrew-dindin-nibnib-formulae/Formula/macos-updater.rb

所以在这里,==> Fixing /usr/local/opt/macos-updater/bin/macos-updater permissions from 755 to 444 行打扰了我,因为当我执行上述公式时,

zsh: permission denied: macos-updater

但是,如果我手动

odinb@MacBook-Pro local % macos-updater
Password:
Password accepted
Starting Brew upgrade
==> Upgrading 1 outdated package:
imagemagick 7.0.11-12_1 -> 7.0.11-13
==> Upgrading imagemagick 7.0.11-12_1 -> 7.0.11-13 
==> Downloading https://ghcr.io/v2/homebrew/core/imagemagick/manifests/7.0.11-13
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/imagemagick/blobs/sha256:9efd64b226e06d71366b336b6fc29e53c3a664f83e697fecafd993f
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:9efd64b226e06d71366b336b6fc29e53c3a664f83e69
######################################################################## 100.0%
==> Pouring imagemagick--7.0.11-13.big_sur.bottle.tar.gz
…

这是我在安装过程中所做的(ruby 文件)

  def install
    bin.install "macos-updater"
    chmod "a+x","./configure"
    system "./configure",bin.to_s
  end

./configure 只是 chmod 755 $1/macos-updater 因为显然它在脚本中效果更好

我想删除 chmod 444 的东西,因为每次我重新安装或更新它时都让我手动 chmod 很烦

效果很好! 那么我怎样才能让它不回到444呢? (如果您想查看 the full ruby file 或 the formula,请点击链接)

Appium Inspector 在 macOS 上加载整个屏幕而不是指定的 macOS 应用程序

Appium Inspector 在 macOS 上加载整个屏幕而不是指定的 macOS 应用程序

如何解决Appium Inspector 在 macOS 上加载整个屏幕而不是指定的 macOS 应用程序

我正在尝试使用 Appium 自动化本机 macOS 应用程序。但是,当我尝试在 Appium Inspector 上加载应用程序时,不是加载指定的应用程序,而是加载了 macOS 的整个屏幕。

以下是我正在传递的功能:

  1. {
  2. "deviceName": "Mac","platformName": "Mac","platformVersion": "11.2","app": "/Applications/Sample.app"
  3. }

如何在 Appium Inspector 中仅加载 Sample.app?

Colored ProgressView

Colored ProgressView

    自定义进度条的颜色。可以任意改变进度条中移动进度的颜色(UIProgressView默认是蓝色,而且无法改变)。

    Code4App编译测试,测试环境:Xcode 4.3, iOS 5.0。
  • ios Colored ProgressView

转载:http://www.adobex.com/ios/source/details/00000428.htm

关于Swift UI MacOS ProgressView使用未解析的标识符'ProgressView'未解析的外部符号_main的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于1. docker 在 macOS 中的架构 2. 在 macOS 系统中,docker pull 下来的镜像存储在哪里?、==> 修复 /usr/local/opt/macos-updater/bin/macos-updater 权限从 755 到 444、Appium Inspector 在 macOS 上加载整个屏幕而不是指定的 macOS 应用程序、Colored ProgressView的相关信息,请在本站寻找。

本文标签: