小编Sn0*_*eze的帖子

SwiftUI 在变量更改时调用函数

我正在尝试将 watchOS 应用程序的视图转换为 Swift UI。我想将 watchKit 中的音量控制移植到带有自定义控件的 SwiftUI。在下图中,您可以看到视图的当前状态。

音量控制会根据当前状态更改铃声的进度,volume并且volume在我转动数码表冠时也会更改。如果没有 SwiftUI,就可以在旋转表冠时调用一个函数。这已经改变了,系统只允许我绑定一个变量。

我想知道的是绑定一个变量并在该变量的每次更改时调用一个函数。因为正常的 Digital Crown 行为不能满足我的需求。

一件事有效,但远非完美是:

.digitalCrownRotation($crownAccumulator, from: -100.0, through: 100.0, by: 1, sensitivity: .low, isContinuous: true, isHapticFeedbackEnabled: true)
.onReceive(Just(self.crownAccumulator), perform: self.crownChanged(crownAccumulator:))
Run Code Online (Sandbox Code Playgroud)

OnReceive 将在每次旋转表冠时调用,但也会在视图的每一次其他更新时调用。

所以我想要的是这样的管道:

皇冠旋转?crownAccumulator变化 ?名为 async 的函数?功能更新volume

过去我会使用 didSet 来完成此操作,但这不再可用

这里是它的代码:


    @ObservedObject var group: Group
    @State var animateSongTitle: Bool = false

    @State var songTitle: String = "Very long song title that should be scrolled"
    @State var artist: String = "Artist name"


    @State …
Run Code Online (Sandbox Code Playgroud)

swift watchos swiftui

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

在 iOS 上将 SwiftUI 视图转换为 PDF

我正在用 SwiftUI 绘制一些漂亮的图形,因为它非常简单易行。然后我想将整个 SwiftUI 视图导出为 PDF,以便其他人可以以一种很好的方式查看图形。SwiftUI 没有直接为此提供解决方案。

干杯,
亚历克斯

pdf uikit ios swiftui

16
推荐指数
2
解决办法
4025
查看次数

iCloud和Xcode 6 - 无处不在的容器

我目前正在开发一款适用于iOS 8的应用程序,该应用程序使用iCloud Drive和CloudKit Framework.一切都是使用Xcode 6设置的.

当我尝试将我的应用程序提交到iTunesConnect时,我收到以下错误: 在此输入图像描述

当我在我的iCloud权利中添加密钥时,我无法对应用程序进行代码签名,Xcode也向我发送错误.

<key>com.apple.developer.ubiquity-container-identifiers</key>
<string>de.sn0wfreeze.CloudFInder</string>
Run Code Online (Sandbox Code Playgroud)

我会得到那个错误:

在此输入图像描述

我无法编码签名.有人可以帮我解决这个问题吗?

code-signing entitlements icloud xcode6 cloudkit

8
推荐指数
1
解决办法
2293
查看次数

使用 openssl 库获取 x509 证书哈希

我目前正在开发一个应用程序,它使用 openssl 库 (libcrypto) 来生成证书。现在我必须获取现有证书的哈希值。

当我使用我的终端时,我能够通过使用生成哈希值

openssl x509 -hash -in cert.pem -noout
Run Code Online (Sandbox Code Playgroud)

输出:01da0e2b

这是我尝试使用 C 中的库生成哈希值的代码。

X509 *cert = NULL;
FILE *fp = fopen(currentCert.UTF8String, "r");
PEM_read_X509(fp, &cert, NULL, NULL);

long hash = X509_subject_name_hash(cert);
char *mdString = malloc(sizeof(long));
sprintf(mdString, "%lx",hash);
printf(mdString);
Run Code Online (Sandbox Code Playgroud)

输出:1817886a

但实际上我的输出是不同的。有人知道我做错了什么吗?

c hash openssl x509 libcrypto

3
推荐指数
1
解决办法
1万
查看次数

watchOS 6 WKInterfaceImage在释放时崩溃

自watchOS 6 SDK的第一个beta版本以来,如果使用watchOS 6.0 SDK进行编译,我的应用程序开始崩溃。watchOS 6.1不会出现此问题,而在模拟器中会更经常发生。现在,我已经能够确定问题所在:

我有一个WKInterfaceImage正在显示通过使用一系列图像制作动画的微调框。如果我有一个WKInterfaceController显示这样的微调器的新推送,则在视图消失时它将崩溃。在内部使用SPInterfaceImageView它似乎被释放了两次。

这是Xcode日志消息:

-[SPInterfaceImageView release]: message sent to deallocated instance 0x3971ed60
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过同样的问题?我猜这是watchOS SDK中的错误。

我不能提供任何源代码,因为仅使用情节提要板就可以实现。我的开发语言是Swift。

亲切的问候
亚历山大·海尼希

ios swift apple-watch watchos-6

3
推荐指数
1
解决办法
66
查看次数

用Java生成X509Certificate的主题哈希

我目前正在尝试使用Java安全API和BouncyCastle生成主题哈希。

使用Openssl库时,这是我的工作:

openssl x509 -in  /Users/Sn0wfreezeDev/Downloads/Test.pem -hash
Run Code Online (Sandbox Code Playgroud)

这会生成一个短的8位数字哈希1817886a

这是我的Java代码

X509Certificate cert = CertManager.getCertificate(number, c);  
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
System.out.println("  Subject " + cert.getSubjectDN());
System.out.println("   Issuer  " + cert.getIssuerDN());
sha1.update(cert.getSubjectDN().getName().getBytes());
String hexString =  bytesToHex(sha1.digest());
System.out.println("   sha1    " + hexString);
System.out.println();
Run Code Online (Sandbox Code Playgroud)

java hash openssl bouncycastle x509certificate

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