小编ric*_*ira的帖子

类型 '()' 不能符合 'View';只有 struct/enum/class 类型可以符合使用 swift ui 调用调用函数的协议

我有一个带有此堆栈的名为 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 中的工作方式。

struct func swift watchos swiftui

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

等了10秒后没能回来.主运行循环模式:kCFRunLoopDefaultMode void SendDelegateMessage(NSInvocation*):委托

嗨,我正在使用核心图标头开发IOS应用程序.我有不同的UI用于风景和肖像.当我试图修改UIview的帧时,取向变化我在等待10秒后无法返回.主运行循环模式:kCFRunLoopDefaultMode void SendDelegateMessage(NSInvocation*):delegate.有人可以建议我做什么.

core-plot uiinterfaceorientation ios

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

了解dispatch_sync和全局队列

我正在学习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组件将被阻止,直到:

  1. Apple系统任务将完成(因为我们在该队列中最后添加任务,应该等到其他系统任务完成)
  2. 直到我们的代码完成.

我对吗?我知道,我们应该dispatch_async在这里使用,我只是想知道事情是如何运作的.

2.问题)据我所知,所有全局队列都是并发队列,这意味着它可以通过上下文切换或并行来管理任务.但是,当我们通过dispatch_sync到达那个队列时,我们被迫等待,所有的工作都将完成.在这种情况下唯一不同于串行队列的是操作顺序.例如,如果串行队列有任务1,任务2,任务3和任务4,它将严格按顺序执行此操作,但并发队列可以更改它的顺序,以首先完成轻量级操作.

所以,我的问题是,我们为什么要这样做dispatch_sync?根据我的理解,主线程将被阻止,直到dispach_sync代码块完成.

multithreading objective-c ios

6
推荐指数
1
解决办法
1573
查看次数

iOS单元测试:两者都实现了类

我正在使用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.

有任何想法吗?

xcode ios xctest swift xcode7

6
推荐指数
1
解决办法
3925
查看次数

Homebrew:忽略 bigdecimal-1.3.2,因为它的扩展没有构建

总是在我运行时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)

ruby homebrew rbenv

6
推荐指数
1
解决办法
1280
查看次数

当我们点击 SwiftUI 图表中的 BarView 时如何更改它的颜色

我创建了如下所示的图表视图。我想知道当用户点击栏时如何更改栏标记。

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

swiftui swiftui-charts

6
推荐指数
1
解决办法
1088
查看次数

将NSString转换为uint8_t

我正在研究Apple在"证书,密钥和信任编程指南"中提供的数据加密示例代码.加密/解密数据的示例代码考虑了uint8_t.然而,真实世界的应用程序将在NSString对象上执行此操作.我一直在尝试将NSString对象转换为uint8_t,但每次我收到编译器警告.在各种论坛中给出的"几乎"相同问题的解决方案似乎对我没有用.

objective-c ios

5
推荐指数
1
解决办法
8997
查看次数

Opera中的SVG使用带有缩放的CSS背景图像

我正在尝试在背景图像上使用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)

css opera svg

5
推荐指数
1
解决办法
2344
查看次数

如何使用Swift在iOS中获取Framework版本

我有我在应用程序中使用的自定义框架(MyFramework)。我想获取自定义框架的版本号为2.1。但是,如果我通过使用FOUNDATION_EXPORT double MyFrameworkVersionNumberXcode提供的来在我的应用程序中尝试过它,它将始终返回1.0。我想在我的应用程序中获取实际版本(2.1)。

ios swift

5
推荐指数
0
解决办法
2324
查看次数

如何在 Apple Watch iOS 中获得 currentStandHour 值?

我想检索指示用户是否站在这个小时的值。我还希望能够检索当天的StandHours计数。

以下是我一直试图理解的 Apple 链接,以便从HealthKit 中获取价值。我提供这些链接是为了帮助理解我在寻找什么,并帮助您回答我的问题。

布鲁诺的回答只是答案的一半。例如,他的standUnit变量是他如何提取用户今天站立的小时数。我测试了它。此外,我假设它必须从 summaries 变量的范围内拉出。

我在 StackOverflow 上发现了另一个问题,可能会提供一些线索。我认为他们设法通过以下方式获得了价值HKCategoryTypeIdentifierWatch 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)

swift healthkit apple-watch

5
推荐指数
1
解决办法
1571
查看次数