问题标签 [watchkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 如何在 XCode 中运行 Watch App
我按照Apple 的指南创建了一个手表应用程序,但不确定如何在模拟器中运行它。
当我选择 Watch App 方案并运行它时,会出现 iPhone 模拟器,并且我可以看到 WatchKit 扩展正在运行,使一些日志变笨
但是模拟器的屏幕上什么也没有发生。
ios - 我可以创建没有情节提要的 WatchKit 应用程序(完全在代码中)吗?
我的团队目前正在开发一个根本不使用情节提要的 iOS 应用程序。我们改为在代码中创建 UI。因此,为了保持一致性,如果我们可以完全用代码创建 Watch App 目标,那就太好了。
但是,“WatchKit 入门”视频和WatchKit 框架参考
都提到您需要一个用于 Watch App 目标的故事板。此外,在WKInterfaceObject.h
方法init
中被标记为不可用:
那么不使用storyboard就真的不可能创建Watch App吗?如果是这样,这个决定背后的原因是什么?我的意思是,我们可以完全用代码创建 iPhone / iPad 应用程序,那为什么 Watch 会有所不同呢?
ios - 如何保证主机应用程序和扩展程序都使用的共享应用程序容器中的核心数据存储中的唯一条目?
为了有效地问我的问题,让我们首先考虑一下我面临的确切情况:
常规设置
- 一个主机 iOS 8 应用程序。
- 与主机应用程序捆绑的一个或多个 iOS 8 扩展(WatchKit、Share 等)。
- 宿主应用程序和所有扩展程序在共享应用程序组容器中共享相同的 Core Data SQLite 存储。
- 每个应用/扩展都有自己的 NSPersistentStoreCoordinator 和 NSManagedObjectContext。
- 每个持久存储协调器都使用一个持久存储,该持久存储与所有其他持久存储在组容器中共享相同的 SQLite 资源。
- 该应用程序和所有扩展程序使用一个通用代码库来同步来自 Internet 上的远程 API 资源的内容。
导致问题的事件顺序
用户启动主机应用程序。它开始从远程 API 资源中获取数据。核心数据模型对象是基于 API 响应创建的,并“更新”到主机应用的托管对象上下文中。每个 API 实体都有一个唯一ID,用于在远程 API 后端标识它。“upsert”是指对于每个 API 实体,如果找不到给定 uniqueID 的现有条目,主机应用程序只会在 Core Data 中创建一个新条目。
同时,用户还启动了主机应用程序的扩展之一。它也从同一个远程 API 执行某种获取。它还尝试在解析 API 响应时执行“更新插入”。
问题:如果宿主应用程序和扩展程序都尝试同时为同一个 API 实体更新核心数据条目,会发生什么?要了解这是如何发生的,让我们看一下 upsert 的事件序列:
核心数据更新序列:
- API 解析代码解析给定 API 实体的唯一 ID。
- 解析器对任何匹配谓词的条目执行核心数据提取,其中谓词
uniqueID
等于解析的唯一ID。 - 如果未找到现有条目,则解析器为此 API 实体插入一个新的核心数据条目,将其
uniqueID
属性设置为解析的唯一 ID。 - 解析器保存托管对象上下文,它将新条目数据下推到 SQLite 后备存储。
详细问题
假设主机应用程序和扩展程序同时独立解析同一 API 实体的 API 响应。如果主机应用程序和扩展程序在它们中的任何一个完成第 4 步之前都到达第 3 步,那么它们都将尝试为相同的 uniqueID 插入新的 Core Data 条目。当他们到达第 4 步并调用save:
各自的托管对象上下文时,Core Data 将愉快地创建重复条目。
据我所知,Core Data 没有任何方法可以将属性标记为唯一。我需要一个相当于SQLite INSERT OR IGNORE
+UPDATE
组合的核心数据。. 否则我需要一种方法来“锁定”持久存储的 SQLite 后备存储,这听起来像是一个麻烦的秘诀。
是否有已知的方法来解决 iOS 8 扩展引入的这个相当新颖的问题?
ios - 从 WatchKit 中的模式视图传回数据
当模态呈现或推送接口控制器时,我们可以指定context
参数以将一些数据传递给新控制器,如下所示。
我的问题是,我们怎么能反过来呢?
假设我们以模态方式为用户提供一个控制器以从列表中选择一个项目,然后我们返回主控制器,我们如何获取已选择的项目?
ios - 将数据传递到 Apple Watch 应用
我正在尝试将数据从我的应用程序传递到我的 Apple Watch 应用程序。基本上,我使用的方法与创建今天小部件的方法相同,因此我通过 NSUserDefaults 传递数据。
问题是,当我运行我的应用程序时,数据并没有像我预期的那样更新 Watch 应用程序中的标签。
这是我所拥有的...
我尝试将此代码放入 中willActivate()
,但这似乎没有什么不同。
有人知道我哪里出错了吗?
ios - watchkit , iOS 在手表和 iphone 之间发送数据
我想在手表中创建一个按钮,并在点击手表时启动我的 ios 应用程序的一个进程。如何在两台设备之间发送数据
加
在我的按钮手表中,但它不起作用
ios - 安装失败:参数无效 -iOS 扩展
我即将从现有项目构建手表应用程序目标。我在完成构建时遇到了一个奇怪的错误,我无法正确运行手表应用程序。这是随附的屏幕截图。
环境
- 操作系统 10.10
- XCode 6.2 测试版
- 模拟器 iPhone 6 iOS 8.2
当我尝试创建新的手表应用程序项目并尝试 Lister 演示应用程序时,它们工作得很好。所以我怀疑我现有的项目有问题,但不确定是什么,因为错误消息并不是真正的解释性。感谢您提供的任何线索或帮助,感谢您的宝贵时间。
编辑:经过几次调查后发现扩展也不起作用。
objective-c - 如何运行 WatchKit 应用程序
我无法从新项目运行 watchkit 应用程序。如果我运行 Apple 的示例项目,它运行良好。如果我通过为 watchkit 添加一个目标来将 watchkit 添加到我现有的项目中。然后运行它,即使在我的情节提要中,我有一个设置为具有蓝色背景的主界面控制器,但随着时间的推移出现黑屏。这行代码被调用。
我的 iPhone 主应用程序(iPhone 应用程序)没有在模拟器上运行。
这基本上是我看到的。
iphone - Apple Watch 中的布局
我正在为 Apple Watch 制作一个计算器,我插入了一个组,并在其中添加了 4 个按钮,但我找不到任何选项可以在两个 Apple Watch 屏幕上调整这 4 个按钮。
苹果手表 38 毫米
苹果手表 42 毫米
组属性
按钮属性