获得冠军有功能:
setTitle
Run Code Online (Sandbox Code Playgroud)
但是如何将WKInterfaceButton的标题作为字符串?
我在https://developer.apple.com/library/prerelease/ios/documentation/WatchKit/Reference/WKInterfaceButton_class/index.html中找不到任何内容
我正在看Apple的Lister(Apple Watch,iOS和OS X)样本.该示例对iOS和OS X执行测试:
#import <TargetConditionals.h>
#if (TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR)
@import ListerKit;
#elif TARGET_OS_MAC
@import ListerKitOSX;
#endif
Run Code Online (Sandbox Code Playgroud)
但是,没有测试TARGET_OS_WATCH或类似.Grepping for watchin TargetConditionals.h不会发出命中:
$ cat /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
/SDKs/iPhoneOS7.1.sdk/usr/include/TargetConditionals.h | grep -i watch
$
Run Code Online (Sandbox Code Playgroud)
从TargetConditionals.h,我知道有:
These conditionals specify in which Operating System the generated code will
run. The MAC/WIN32/UNIX conditionals are mutually exclusive. The EMBEDDED/IPHONE
conditionals are variants of TARGET_OS_MAC.
TARGET_OS_MAC - Generate code will run under Mac OS
TARGET_OS_WIN32 - Generate code will run under … 有谁知道Installed&Hidden属性之间有什么区别WKInterfaceLabel?
它们都显示/隐藏标签.

在我的手表应用程序中,在显示控制器后presentControllerWithNames:contexts:,是否可以更改状态栏中标题的颜色?例如,在Apple的WatchKit Catalog样本中,他们有一个控制器,它们以模式方式呈现,并将"Dismiss"设置为标题.在故事板中,此控制器的标题似乎应用了全局色调,但在模拟器中运行应用程序时,颜色默认为白色.
如果可能的话,我如何让一个呈现的WatchKit控制器尊重全局色调?
编辑:为了清晰起见附加截图.
我有一个watchOS 2应用程序,在运行期间显示健康数据.我使用HKWorkoutSession开始锻炼,如下所示:
self.workoutSession = HKWorkoutSession(activityType: .Running, locationType: .Outdoor)
self.workoutSession!.delegate = self;
self.healthStore.startWorkoutSession(self.workoutSession!)
Run Code Online (Sandbox Code Playgroud)
当屏幕关闭一段时间后,这会使我的应用程序保持在前台,用户稍后再次查看它.
现在让我们说在锻炼期间,用户切换到另一个应用程序或手表屏幕锁定(由于手表没有足够紧固),然后用户通过双击数字表冠重新启动我正在运行的应用程序.该应用程序从中断处继续恢复并继续按预期获取健康数据,但我的应用程序将不再保留在前台.锻炼仍在进行中,因为在表盘上我仍然可以看到顶部的锻炼图标,心率监测器继续收集心率数据,但应用程序拒绝留在前台.
有没有人知道如何在锻炼期间将锻炼应用程序恢复到前台,即使屏幕锁定或用户切换到其他应用程序?
我试图通过序列化数组将一系列'Employee'对象iPhone传递给Apple Watch:
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:employees];
Run Code Online (Sandbox Code Playgroud)
并在Watch侧进行反序列化:
NSMutableArray *employees = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];
Run Code Online (Sandbox Code Playgroud)
这是'员工'类:
@interface Employee : NSManagedObject
@property (nonatomic, retain) NSNumber * employeeID;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * age;
@property (nonatomic, retain) NSString * address;
@property (nonatomic, retain) NSString * designation;
@property (nonatomic, retain) NSString * teamName;
@property (nonatomic, retain) NSString * gender;
@property (nonatomic, retain) NSNumber * dateOfJoining;
@end
Run Code Online (Sandbox Code Playgroud)
我是否必须在Watch端进行任何更改才能修复此错误?
嘿,我有一个带有Watch Extension的iOS应用程序.启动Apple Watch应用程序时,它会启动iPhone应用程序并通过sendMessage每隔几秒钟发送一次呼叫来保持活动状态.然后iPhone应用程序导航到WKWebView中的网站,每隔几秒检查一次内容,然后将一些数据发送到Apple Watch以便在那里显示.
在Apple Watch上显示不断更新的内容非常正常,我在iPhone上获取数据:
self.webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",
completionHandler: { (html: Any?, error: Error?)
. . . //splitting html content into TFHppleElements
self.contentArray.add((element.search(withXPathQuery: "//div[contains(@class, 'article-title')]")[0] as AnyObject).content)
Run Code Online (Sandbox Code Playgroud)
我每5秒跑一次.一旦article-title更改中的文本,我的手表上就会显示更改.作品.
这些元素都包含类似的内容,style="z-index: 206; height: ...并且我通过抓取属性然后将其向下细分来成功解析它.
let styleContainer = element.attributes["style"] as! String
var firstHalf = styleContainer.components(separatedBy: "; height:")
...
Run Code Online (Sandbox Code Playgroud)
我使用z-index值对Apple Watch上的表行进行排序,但在1-3次更新后,所有元素的z-index都停止更新.内容(如文章标题)仍在更新,所以数据流肯定有效,但我想知道为什么z-index'保持不变.起初我认为这是我的排序或转移到Apple Watch时的一个问题,但我无法确定这个问题 - 当我在iPhone上运行应用程序时,它总是得到正确的索引,但是当我跑该应用程序通过在手表上启动它,出现上述问题.
经过几天的数据结构混乱(仍然认为错误在我身边)它终于打动了我:当应用程序在后台启动时,页面上的z-index本身没有得到更新.我通过在我的手表上启动应用程序并像往常一样得到错误的z-index来检查这一点但是我保持Watch应用程序打开并在iPhone上启动应用程序 - 我看到WKWebView根据他们的z更新元素的顺序-index然后我突然得到了每个元素的正确z-index,即使在按下主页按钮之后也是如此.这解释了很多,但仍然无法帮助我解决问题.
我如何欺骗WKWebView让JS在后台运行时更新所有元素z-index?我觉得奇怪的是,在短时间内打开iPhone应用程序后不会出现此问题,但我不能要求我的用户每次想要访问Watch应用程序时打开并"最小化"应用程序Watch应用程序的目的是将手机放在口袋里.
通过sendMessage调用viewDidLoad 激活iPhone应用程序,因此我可以指出在手动启动应用程序和通过Watch执行此操作之间的真正区别.Javascript本身也可以在后台运行,那么除了z-index属性之外,为什么一切都会更新?防止运行背景的"图形"更新在保持电池寿命方面是可以理解的,但也不是文本"图形"吗?如果它是手动启动的话,为什么家用按钮应用会有所不同呢?
删除因为下面只发生一次,很奇怪.
编辑:好的,所以实际上索引值会发生变化,但每当一篇文章被推到顶部时,它会转到与任何文章的最高值相同的值而不更新其他文章的值.例:
Before:
A1: 26
A2: 27
A3: 28
A4: 29
After pushing …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用heartRateVariabilitySDNN.我通过查询成功获取heartRate,并使用以下代码获取heartRateVariabilitySDNN但不知道它是如何工作的.此外,没有关于此查询或Apple示例代码的正确文档.
func createheartRateVariabilitySDNNStreamingQuery(_ workoutStartDate: Date) -> HKQuery? {
let typeHeart = HKQuantityType.quantityType(forIdentifier: .heartRateVariabilitySDNN)
let predicate: NSPredicate? = HKQuery.predicateForSamples(withStart: workoutStartDate, end: nil, options: HKQueryOptions.strictEndDate)
let squery = HKStatisticsQuery(quantityType: typeHeart!, quantitySamplePredicate: predicate, options: .discreteAverage, completionHandler: {(query: HKStatisticsQuery,result: HKStatistics?, error: Error?) -> Void in
DispatchQueue.main.async(execute: {() -> Void in
print("got: \(String(describing: result))")
})
})
return squery
}
Run Code Online (Sandbox Code Playgroud) 最初,我认为这是我编写的代码的问题,但我刚刚下载了四个或五个WatchKit项目,甚至是Apple的一个.所有这些都无法加载.
我已经卸载了Xcode,重新安装它仍然没有.还有其他人遇到同样的问题吗?解决方法?解决方案?

您可以在上面的屏幕截图中看到加载屏幕的样子.
当我第一次构建我的app&Watchkit应用程序时,我启用了"Associated Domains"功能.我已经在watchkit扩展和配套应用程序的"功能"面板中禁用了它,并确认密钥已从每个info.plist中删除.
我已经转到Apples的"证书,标识符和配置文件"页面,为每个Watchkit应用程序,扩展程序和应用程序选择了应用程序ID,未选中"关联域",重新生成每个的配置文件,下载并安装它们.
我已完成Ctrl-Shift-Command-K完全清理,重启和重建.在对appstore进行总结时,我收到以下错误消息.
我在xcode中完成了项目搜索,无法找到com.apple.developer.associated-domains键.我搜索了构建目录,nada.我不相信这个密钥实际上存在于我的代码中,但iTunesConnect似乎认为它在那里并设置为'*'.

watchkit ×10
ios ×6
healthkit ×2
objective-c ×2
swift ×2
watchos-2 ×2
xcode ×2
apple-watch ×1
iphone ×1
javascript ×1
preprocessor ×1
provisioning ×1
watchos-4 ×1
xcode-6.2 ×1