如果您想了解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)
- 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''
我试图在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 下来的镜像存储在哪里?
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
我创建了一个水龙头 (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 自动化本机 macOS 应用程序。但是,当我尝试在 Appium Inspector 上加载应用程序时,不是加载指定的应用程序,而是加载了 macOS 的整个屏幕。
以下是我正在传递的功能:
{
"deviceName": "Mac","platformName": "Mac","platformVersion": "11.2","app": "/Applications/Sample.app"
}
如何在 Appium Inspector 中仅加载 Sample.app?
Colored ProgressView
自定义进度条的颜色。可以任意改变进度条中移动进度的颜色(UIProgressView默认是蓝色,而且无法改变)。Code4App编译测试,测试环境:Xcode 4.3, iOS 5.0。
转载: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的相关信息,请在本站寻找。
本文标签: