小编Ser*_*has的帖子

Xcode 11 GM中缺少iOS 12.4

我已经安装了Xcode 11 GM,现在找不到iOS 12.4.1模拟器。Xcode 10.3中安装了iOS 12.4.1,但由于某些原因,它在Xcode 11中不可用(不仅是iOS 12.4-其他模拟器也丢失了)。而且,我无法通过“添加其他模拟器...”下载它-最新的可用版本是12.2。任何想法为什么这样以及如何解决?谢谢!

xcode ios xcode11

18
推荐指数
2
解决办法
1571
查看次数

Eclipse + Java 8 +动态Web模块

我正在开始一个新项目并考虑转向Java 8,因为最新的Spring Framework 4.0支持它,并且在最后一次发布这个游行之前不久.
目前我们正在使用STS 3.4(基于Eclipse 4.3.1),并且我已经安装了最新的JDK8和Java 8(BETA)支持.简单的项目似乎发现自己在Java 8中,而不是UI项目(Dynamic Web Module 3.0,部署在服务器上).我收到错误,编译器版本(1.8 BETA)与安装的项目方面"Java"(1.7)不匹配.并且"Java"项目方面没有"1.8"这样的选项...
有没有人用Java 8成功运行UI项目?
谢谢!

java eclipse eclipse-wtp java-8

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

WidgetKit 并发症不会更新

我们正在将ClockKit复杂功能迁移到WidgetKit手表应用程序 (watchOS 9+) 中。\n迁移进展顺利,UI 部分工作正常。然而,我们遇到了小部件在手表应用程序请求时没有更新的问题。\n我相信我们错过了一些非常简单和基本的东西,但到目前为止还找不到确切的东西。非常欢迎建议和提示!\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f

\n

我们的实施细节:

\n
    \n
  • 每当主应用程序中的数据发生更改时,更新的数据都会WatchConnectivity使用WCSession.default.transferCurrentComplicationUserInfo(_:). 根据文档,此方法应用于传输与复杂功能相关的数据,因为即使手表应用程序位于后台或根本未打开,它也会唤醒手表应用程序。
  • \n
  • Watch 应用程序接收更新的数据并将其存储在UserDefaults与托管 WidgetKit 复杂功能的 Watch Widget 扩展共享的位置App Group
  • \n
  • 观看应用程序,然后通过 请求小部件时间线重新加载WidgetCenter.shared.reloadAllTimelines()。根据文档,它重新加载属于包含应用程序的所有已配置小部件的时间线,因此这似乎是重新加载 WidgetKit 复杂性的适当方法。
  • \n
  • Watch Widget Extension 中的 Widget Timeline Provider 类从共享中读取更新的数据UserDefaults,并使用它来为要渲染的 widget 视图提供更新的数据snapshot
  • \n
\n

我们相信我们的实现逻辑是正确的,但由于某种原因它不起作用。打开手表应用程序时,小部件有时会更新,但并非总是如此。强制更新小部件的最明确方法是切换到不同的表盘,这确认小部件时间线提供程序可以访问正确更新的数据。

\n

PS我们知道小部件的每日重新加载预算,因此我们很少使用小部件重新加载触发器。无论如何,根据文档,在调试模式下重新加载预算无效,但即使在调试模式下小部件也不会重新加载。

\n

最低可重现示例应用程序:\n https://github.com/SergejLogis/wkcomplications

\n

谢谢你!

\n

widgetkit watchos clockkit swiftui

7
推荐指数
0
解决办法
407
查看次数

如何等待具有不同有效负载的多个 PromiseKit 承诺?

在我的项目中,我有许多函数可以从底层数据源异步获取数据并将结果作为 返回Promise<T>,其中T可选的模型对象。我需要并行获取 2 个不同的独立对象。为此,我尝试使用when(resolved: [Promise<T>])函数:

let userPromise: Promise<User> = fetchUser(with: userID)
let documentPromise: Promise<Document> = fetchDocument(with: documentID)

when(resolved: [userPromise, documentPromise]).done {
...
}
Run Code Online (Sandbox Code Playgroud)

但我收到了一个错误Cannot invoke 'when' with an argument list of type '(resolved: [Any])'。我试图将承诺分配给显式声明的数组:

let promises: [Promise<Any>] = [userPromise, documentPromise]

但现在我收到了一个Promise<User>无法分配给Promise<Any>. 坦率地说,我无法围绕它。那里有什么问题?

PS为了使事情更容易掌握,我创建了以下代码段:

func getPromise() -> Promise<String> {
   return Promise<String>.pending().promise
}

let promise: Promise<Any> = getPromise()
Run Code Online (Sandbox Code Playgroud)

这会产生类似的错误:Cannot convert value of type 'Promise<String>' …

generics ios swift promisekit

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

使用CGAffineTransformScale自定义UIView缩放

我学着开发iOS和教育过程的一部分,我已创建自定义的UIView,它使用drawRect绘制它的内容(核芯显卡+ UIBezierPath为主).Everthing按预期工作,视图是动态的,并根据它的宽度/高度呈现它的内容.现在我想添加溶解动画,看起来应该从100%缩放到0%.我写了这段代码来做到这一点:

[UIView animateWithDuration:1 delay:0
                options: UIViewAnimationOptionBeginFromCurrentState
             animations: ^{
     for (CardView *cardView in self.cardsViews) {
         cardView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.01, 0.01);

     }} completion:nil];
Run Code Online (Sandbox Code Playgroud)

但是,此代码不会将我的视图从100%缩放到0%.它只是使卡片消失(最多).我已经尝试了很多方法来进行缩放,但到目前为止我所达到的效果只是从0%缩放到100%.我的观点完美,但不能反向缩放...而且,即使我尝试应用非动画变换,它也不会向上/向下缩放,例如:

cardView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.5, 0.5);
Run Code Online (Sandbox Code Playgroud)

我看到我的视图看起来改变了A BIT,但没有扩展到50%,这是肯定的.当我尝试将完全相同的动画逻辑应用于UILabel时,它完美运行!我错过了开发自定义UIView的哪些方面?缩放视图为何可能出现故障 非常感谢提前!

更新#1此代码使我的视图正好大两倍,然后将其缩放回原始大小:

[UIView animateWithDuration:5 delay:0
                    options: UIViewAnimationOptionBeginFromCurrentState
                 animations: ^{
         for (CardView *cardView in self.cardsViews) {
             cardView.transform = CGAffineTransformMakeScale(0.5, 0.5);
         }
    } completion:nil];
Run Code Online (Sandbox Code Playgroud)

transformation uiview ios

4
推荐指数
1
解决办法
7160
查看次数