我有一个带有此堆栈的名为 MyWatchView 的 SwiftUI 视图:
VStack (alignment: .center)
{
HStack
{
Toggle(isOn: $play)
{
Text("")
}
.padding(.trailing, 30.0)
.hueRotation(Angle.degrees(45))
if play
{
MyWatchView.self.playSound()
}
}
}
Run Code Online (Sandbox Code Playgroud)
它还具有如下@State private var play = false功能playSound:
static private func playSound()
{
WKInterfaceDevice.current().play(.failure)
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,Type '()' cannot conform to 'View'; only struct/enum/class types can conform to protocols我认为这可能是我不理解结构在 Swift 中的工作方式。
嗨,我正在使用核心图标头开发IOS应用程序.我有不同的UI用于风景和肖像.当我试图修改UIview的帧时,取向变化我在等待10秒后无法返回.主运行循环模式:kCFRunLoopDefaultMode void SendDelegateMessage(NSInvocation*):delegate.有人可以建议我做什么.
我正在学习GCD机制,我有几个问题.如果你纠正我,如果我的材料有问题,我将不胜感激.
1.问题)据我所知,GCD有4个不同优先级的全局并发队列.例如,当我们写作时DISPATCH_QUEUE_PRIORITY_HIGH,我们得到一个这样的队列.队列不是空的,一些Apple系统进程在它们上面运行.因此,当我们在某个队列中添加代码块时,例如,当n是随机整数时,它可以是一行中的n个数字任务.
现在,当我们添加代码块时,就像
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
// Heavy calculations
});
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad,所有UI组件将被阻止,直到:
我对吗?我知道,我们应该dispatch_async在这里使用,我只是想知道事情是如何运作的.
2.问题)据我所知,所有全局队列都是并发队列,这意味着它可以通过上下文切换或并行来管理任务.但是,当我们通过dispatch_sync到达那个队列时,我们被迫等待,所有的工作都将完成.在这种情况下唯一不同于串行队列的是操作顺序.例如,如果串行队列有任务1,任务2,任务3和任务4,它将严格按顺序执行此操作,但并发队列可以更改它的顺序,以首先完成轻量级操作.
所以,我的问题是,我们为什么要这样做dispatch_sync?根据我的理解,主线程将被阻止,直到dispach_sync代码块完成.
我正在使用Swift 2和Xcode 7构建iOS 9应用程序。
将应用程序部署到手机时,我的应用程序运行良好,但是当我运行任何单元测试时,对于许多类,我都会收到以下错误消息:
Class _TtC5<AppName>19<ClassName> is implemented in both /Users/<Username>/Library/Developer/CoreSimulator/Devices/<UUID>/data/Containers/Bundle/Application/<UUID</<AppName>.app/<AppName> and /Users/<Username>/<Path/To/Workspace>/DerivedData/<AppName>/Build/Products/Debug-iphonesimulator/<AppName>.xctest/<AppName>. One of the two will be used. Which one is undefined.
有任何想法吗?
总是在我运行时brew update出现Ignoring bigdecimal-1.3.2 because its extensions are not built. Try: gem pristine bigdecimal --version 1.3.2警告:
> brew update
Ignoring bigdecimal-1.3.2 because its extensions are not built. Try: gem pristine bigdecimal --version 1.3.2
Ignoring bigdecimal-1.3.2 because its extensions are not built. Try: gem pristine bigdecimal --version 1.3.2
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
我正在使用 Homebrew v1.7.7(Homebrew/homebrew-core(git 修订版 77cae;最后一次提交 2018-10-19)、Homebrew/homebrew-cask(git 修订版 c95843;最后一次提交 2018-10-19))和 rbenv v1 .1.1.
我已经这样做了gem pristine bigdecimal --version 1.3.2,它说:
> gem pristine bigdecimal --version 1.3.2
ERROR: While executing …Run Code Online (Sandbox Code Playgroud) 我创建了如下所示的图表视图。我想知道当用户点击栏时如何更改栏标记。
Chart {
ForEach(Data.lastOneHour, id: \.day) {
BarMark(
x: .value("Month", $0.day, unit: .hour),
y: .value("Duration", $0.duration)
)
}
}
Run Code Online (Sandbox Code Playgroud)
我看到.onTap修改器不可用BarMark,并且我看不到任何方法来访问条形标记并使用手势位置应用颜色GeometryReader。
我正在研究Apple在"证书,密钥和信任编程指南"中提供的数据加密示例代码.加密/解密数据的示例代码考虑了uint8_t.然而,真实世界的应用程序将在NSString对象上执行此操作.我一直在尝试将NSString对象转换为uint8_t,但每次我收到编译器警告.在各种论坛中给出的"几乎"相同问题的解决方案似乎对我没有用.
我正在尝试在背景图像上使用SVG,如:
.logo
{position: absolute;
width: 300px; height: 300px;
background-image: url(../img/logo.svg);
background-size: 256px 256px;
background-repeat: no-repeat;}
Run Code Online (Sandbox Code Playgroud)
这适用于Safari,Firefox,Chrome,但不适用于Opera,我不会遇到问题.
示例Chrome 24:
[CHROME](我很抱歉,我从主持人那里删除了这个例子)
示例Opera 12.14:
[OPERA](我很抱歉,我从主持人那里删除了这个例子)
更新1:
SVG文件
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="100px" height="100px" viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<g>
<path fill="#00A99D" d="M41.027,96.075H16.375v-54.84c0-10.062,2.636-18.258,7.91-24.586c3.032-3.647,6.888-6.547,11.568-8.7
c4.68-2.153,9.48-4.23,14.402-4.23c9.798,0,18.061,4.296,24.784,10.887c6.724,6.591,10.085,14.677,10.085,24.256
c0,9.316-3.341,17.357-10.019,24.124c-6.68,6.769-14.59,10.151-23.729,10.151c-1.495,0-3.691-0.154-6.591-0.462
c0,0,15.358-31.682,15.358-34.277c0-2.592-0.945-4.801-2.834-6.625c-1.891-1.823-4.153-2.735-6.79-2.735
c-6.328,0-9.491,4.373-9.491,13.117V96.075z"/>
</g>
<g>
<path fill="#003333" …Run Code Online (Sandbox Code Playgroud) 我有我在应用程序中使用的自定义框架(MyFramework)。我想获取自定义框架的版本号为2.1。但是,如果我通过使用FOUNDATION_EXPORT double MyFrameworkVersionNumberXcode提供的来在我的应用程序中尝试过它,它将始终返回1.0。我想在我的应用程序中获取实际版本(2.1)。
我想检索指示用户是否站在这个小时的值。我还希望能够检索当天的StandHours计数。
以下是我一直试图理解的 Apple 链接,以便从HealthKit 中获取价值。我提供这些链接是为了帮助理解我在寻找什么,并帮助您回答我的问题。
appleStandHour类型属性:https : //developer.apple.com/documentation/healthkit/hkcategorytypeidentifier/1615539-applestandhour布鲁诺的回答只是答案的一半。例如,他的standUnit变量是他如何提取用户今天站立的小时数。我测试了它。此外,我假设它必须从 summaries 变量的范围内拉出。
我在 StackOverflow 上发现了另一个问题,可能会提供一些线索。我认为他们设法通过以下方式获得了价值HKCategoryTypeIdentifier:Watch os 2.0 beta: access heart beat rate
据我所知,这是我尝试的代码:
import UIKit
import HealthKit
import HealthKitUI
class ViewController: UIViewController {
let hkStoreOnVC : HKHealthStore = HKHealthStore()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
authorizeHealthKit()
hkTest()
hkTest2() …Run Code Online (Sandbox Code Playgroud)