小编Rub*_*Jr.的帖子

在原始iOS App和App Extension之间共享代码

在iOS应用和扩展应用之间共享课程

我想在我的应用和扩展应用中使用自定义类.如果我只是在主应用程序文件夹中有该类,则扩展程序不会接收它.我尝试制作它的副本并将其放入扩展文件夹,但我当然得到一个invalid redeclaration of [my class]错误.什么是最好的解决方案?它只是一个类,而不是多个资源.

xcode ios ios-app-extension ios8-extension

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

"Stream在打开之前发送一个事件"

我正在尝试使用Swift发出SOAP请求.从9/9/14开始运行最新的Xcode/iOS.我使用的NSMutableURLRequest是我将HTTPBody添加到请求信息中.但是,一旦我启动NSURLConnection了请求,我收到一个错误"Stream xxxxxxxxx在打开之前发送一个事件".我没有使用任何网络库,只是一个普通的老库NSURLConnection.有什么可能导致这个错误的想法?谢谢!

使用中的相关代码:

func createSOAPRequestWithEnvelope(soapEnvelope : String) {
    //create request
    var url = NSURL(string: "https://my-service-url")
    var req = NSMutableURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy, timeoutInterval: 5000)

    req.addValue("text/xml",    forHTTPHeaderField: "Content-Type")
    req.HTTPMethod = "POST"
    req.HTTPBody = soapEnvelope.dataUsingEncoding(NSUTF8StringEncoding)

    //begin connection
    var connection = NSURLConnection(request: req, delegate: self, startImmediately: false)
    connection.scheduleInRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)

    connection.start() //error happens after this command :(
}

//takes care of NTLM Authentication
func connection(connection: NSURLConnection!, didReceiveAuthenticationChallenge challenge: NSURLAuthenticationChallenge!) {
    var authMethod = challenge.protectionSpace.authenticationMethod

    if authMethod == …
Run Code Online (Sandbox Code Playgroud)

networking ios swift ios8

22
推荐指数
1
解决办法
9543
查看次数

仅在脱机时使用ServiceWorker缓存

我正在尝试将服务工作者集成到我的应用程序中,但我发现服务工作者即使在线也尝试检索缓存内容,但我希望它在这些情况下更喜欢网络.我怎样才能做到这一点?下面是我现在的代码,但我认为它不起作用.为简洁起见,省略了SW安装代码.

var CACHE_NAME = 'my-cache-v1';
var urlsToCache = [
  /* my cached file list */
];

self.addEventListener('install', function(event) {
  // Perform install steps
  event.waitUntil(
    caches.open(CACHE_NAME)
      .then(function(cache) {
        console.log('Opened cache');
        return cache.addAll(urlsToCache);
      })
  );
});

/* request is being made */
self.addEventListener('fetch', function(event) {
  event.respondWith(
    //first try to run the request normally
    fetch(event.request).catch(function() {
      //catch errors by attempting to match in cache
      return caches.match(event.request).then(function(response) {
        // Cache hit - return response
        if (response) {
          return response;
        }
      });
    })
  );
}); …
Run Code Online (Sandbox Code Playgroud)

javascript browser-cache web-worker service-worker

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

Babel错误:JSX值应该是表达式或带引号的JSX文本

当我尝试将JSX代码编译成JS时,我收到Babel的错误.如果这是一个明显的问题,我是新来的,如此道歉,我无法找到任何与之相关的内容.我试图在这段代码中使用props,并将pageTitle prop传递给我的FieldContainer组件.这给了我一个问题,那就是不要让代码编译成JS.我在搜索中发现,道具值应该在两者之间传递{},但添加这些值并没有帮助.有任何想法吗?谢谢!

通天塔错误

reactjs react-jsx babeljs

16
推荐指数
2
解决办法
3万
查看次数

谷歌Chrome无声推送通知

我一直在阅读Chrome 在这里实施Web Push API的文档,我注意到API说"你保证在收到推送时会显示通知",并且在限制条件下它声明"你必须在你会收到推送信息".

在我的localhost上实现示例后,我使用cURL成功发送推送通知.我很好奇,所以我注释掉实际上调用showNotification函数的行,然后放入console.log,发现我实际上可以发送,接收和完全忽略推送通知.我甚至尝试使用if语句来控制是否根据我从主页面控制的全局布尔值来显示它们,这是有效的.所以我想知道是否有人知道他们的意思是说你需要显示通知,并且无法提供无声推送通知?

这不仅仅是为了它,我合法地可能需要控制是否在我的网络应用程序中显示这些通知,所以如果这实际上是可能的话会很好.如果你好奇,请在下面编写代码.

self.addEventListener('push', function(event) {
  var title = 'New Message';
  var body = 'You have received a new message!';
  var icon = '/img/favicon.png';
  var tag = 'well-notification';
  console.log("DID RECEIVE NOTIFICATION")

  if(settingsShowNotification) {
    event.waitUntil(
      self.registration.showNotification(title, {
         body: body,
         icon: icon,
         tag: tag
      })
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

编辑:在Chrome 47上,如果它是相关的.

更新:经过进一步的实验,我发现了一个明显的问题,即一旦用户导航离开然后重新导航到同一页面,我就无法更新原始的全局变量.但是,我能够使用serviceworker本身的变量并使用此处描述的API向服务工作者发送消息以切换showNotifications布尔值来绕过这一点.

notifications google-chrome google-cloud-messaging web-push push-api

9
推荐指数
1
解决办法
3136
查看次数

缓冲后AVPlayer无法恢复

我的iOS应用程序使用AVPlayer来自网络流媒体.我正在使用KVO来检测缓冲(playbackBufferEmpty)和被捕(playbackLikelyToKeepUp)等事件.但是,我注意到一个奇怪的特定错误.虽然在大多数网络减速期间,playbackBufferEmptyKVO被击中,当它恢复时,playbackLikelyToKeepUpKVO按预期击中,我注意到(有一些频率)AVPlayer意志缓冲一段时间,恢复,playbackLikelyToKeepUp被击中,音频播放可能1-3秒,然后音频再次停止播放,就像它正在缓冲一样 - 没有playbackBufferEmpty再次击中KVO.它并没有从中恢复过来.

TL; DR:playbackBufferEmpty(10-20秒) - > playbackLikelyToKeepUp- >播放1-3s - >停止播放但没有击中KVO.

最糟糕的是,当发生这种情况时,AVPlayer不会像从缓冲中恢复时那样再次自动开始播放,并且应用程序保持静音,直到AVPlayer手动停止/再次启动.每次我流式传输时,它或多或少都会发生.这是一个已知的问题AVPlayer吗?这是我能看到的第三次KVO活动吗?或者有关如何调试此问题的任何提示?谢谢!

编辑:附加信息:本AVPlayererror特性是nil,当发生这种情况,status物业准备播放,并且rate属性是1 AKA闲来无事怪异事情,至于我可以告诉.

audio streaming ios avplayer

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

iOS 8 Beta 2中的Cordova地理位置问题

这更像是一篇信息性帖子:过去几天我在最新的iOS 8 Beta上花费了非功能性地理定位应用程序.

起初我不确定它是否被隔离到iOS 8,或者它是否是设备与模拟器的问题,但在重新下载XCode 6 Beta 2后(我的第一次下载由于某种原因导致模拟器损坏),我确认事实上,iOS 8 Beta 2模拟器似乎并不喜欢我试图抓住地理位置.

起初呼叫似乎根本不起作用; 然后我做了一个改变,从包括phonegap.js到包括cordova.js,最后取得了一些进展.文档很糟糕,因为官方文档中的以下指南似乎让人相信它们是可以互换的.我会建议有问题的人先检查一下.

它不是navigator.geolocation.getCurrentPosition(....)按预期运行回调函数,而是挂起而不做任何事情.有时导航离开页面并返回到它会强制错误回调,但它非常不一致.设置{ timeout: 5000 }选项后,似乎每次通话都会超时.控制台没有错误,XCode没有错误,没有.如果我在X秒后没有显式超时,那么成功函数就不会运行,周期,也不会出现错误回调.这是一个与iOS 8 Beta隔离的错误,所以大多数(尚未)都没有关注,但我觉得我应该发布这个以防万一有人碰到它.我也将在Apple开发中心发帖.

javascript geolocation ios cordova ios8

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

Java中+ = vs = +

我熟悉java中的+ =运算符,如果执行如下:

i += 2;

是相同的:

i = i + 2;

但到底是什么= +?它在Java中编译得很好,但据我所知它只将结果右侧表达式赋给左侧变量.即

i =+ 2

是相同的:

i = 2

有谁知道这到底发生了什么?如果有人问过道歉,关于运营商的任何问题的搜索引擎优化总是很糟糕...谢谢!

java programming-languages operators

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

在加载时重置灰烬组件

我有一个Ember.Component,它将项添加到空数组并在提交时返回数组.问题是,如果我离开包含Component的Route(在提交和不提交之后),然后再回到它,那么数组中最后的信息仍然存在.每次我使用组件导航到路线时,我都希望重置.

如果这是一条路线,我只需编写一个willTransitiondeactivate方法来重置我的属性.但由于它是一个组件,它没有那些方法,我不能(我知道)访问我希望从父路由重置的属性.那么,每次加载此路由时,如何将此数组重置为空(或重置整个组件)?谢谢!

javascript ember.js

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

TypeScript 优化帮助 - “类型实例化过深且可能是无限的。(2589)”

我有一些 TypeScript 代码,我试图data-从元素属性的完整对象中提取属性。但是,我遇到了一个错误,“类型实例化过深并且可能是无限的。(2589)”。

\n

认为我的代码可能可以优化以修复此问题\xe2\x80\x94我可能会使它过于复杂\xe2\x80\x94所以我希望有专家的眼光来看看它是否可以提供帮助,或者我是否可以尝试去做太难了。

\n

这是TS Repl的链接,我添加了以下代码:

\n
type AnyArray = any[];\ntype AnyArrayWithItems = [any, ...any];\ntype AnyFunction<Arguments extends any[] = any[]> = (...args: Arguments) => any;\n\n// The type of the first item in an array.\n// Input: `[1, 2, 3]`\n// Output: `1`\ntype Head<SomeArray extends AnyArray> = SomeArray extends AnyArrayWithItems\n    ? SomeArray[0]\n    : never;\n\n// The type of an array after removing the first element.\n// Input: `[1, 2, 3]`\n// Output: `[2, 3]`\ntype Tail<SomeArray extends AnyArray> = …
Run Code Online (Sandbox Code Playgroud)

javascript recursion typescript typescript-generics

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