watchOS2和iOS8连接 - Swift

时间:2015-10-22 12:54:47

标签: ios swift watch-os-2 watchconnectivity

对于 watchOS1 ,有几种有限但有效的方法可用于在手表和手机之间共享数据 - 例如openParentAppAppGroupsNSUserDefaults

随着 watchOS2 的发布和 WatchConnectivity 框架 - openParentApp方法被弃用,AppGroupsNSUserDefaults仅限于只读功能。需要注意的是,只有 iOS9 设备支持WatchConnectivity。

但不知怎的,我看到AppStore上的应用声称要针对 watchOS2 进行优化 将 iOS8 作为部署目标。

我错过了什么吗? 是否还有其他方法可以充分共享数据?

1 个答案:

答案 0 :(得分:2)

某些用户可能没有Apple Watch,他们可能使用的是iOS8。 为了支持它们,您可以为每个构建目标设置每个部署目标版本。

在项目中喜欢这些示例目标:

  • iOS App(目标:iOS 8.x,您必须将WatchConnectivity框架设置为可选)
  • watchOS 2 App(目标:iOS 9.x& watchOS 2) - > iOS8用户无法安装手表应用程序。
  • watchOS 2 App Exntension(目标:iOS 9.x& watchOS 2)

在iOS应用程序代码中,您可以使用以下代码检查NSClassFromString(@"WCSession") != nil; 可用性:

foreach (var file in Directory.EnumerateFiles(inputFilePath))
{
   FileInfo f = new FileInfo(file);
   if (!(file.ToUpper().Contains("ENCODING") || file.Contains("HEADERS")))
   {
       workerThreads[io] = new Thread(() => ProcessSingleFile(file, log, f));
       workerThreads[io].Name = "Thread " + file;
   }
   io++;
}
foreach (var worker in workerThreads)
{
    worker.Start();
}
_pool.Release(MaxNumberOfProcessors);
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
foreach (var worker in workerThreads)
{
    worker.Join();
}
stopwatch.Stop(); 

据我所知,您也可以同时提供watchOS 1 App,但我没有测试它。它不能用模拟器测试,我没有其他有watchOS1的苹果手表。