小编Dra*_*Max的帖子

将 Timer 添加到主 RunLoop 是正确的解决方案吗?

我有一个计时器,我想在给定的时间间隔内连续重复,但是我似乎可以让计时器持久化的唯一方法是将其添加到 RunLoop.main 中,如下所示:

let timer = Timer(timeInterval: timeInterval, repeats: true) { (timer) in
    blockToFire()
}
RunLoop.main.add(timer, forMode: .commonModes)
Run Code Online (Sandbox Code Playgroud)

我知道使用 .commonModes 应该可以防止计时器在用户与 UI 交互时错过它的提示,但是计时器会导致添加到主运行循环的问题吗?UI会变慢吗?

timer ios swift

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

注册AWSS3配置会造成5000多次内存泄漏

我一直试图弄清楚过去两天为什么这种简单的AWSS3配置设置可能会造成5000多次内存泄漏.这是我在AppDelegate中运行的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // SetUp AWS Config
    let myIdentityPoolId = Constants.AWS_IDENTITY_POOL_ID
    let credentialsProvider: AWSCognitoCredentialsProvider = AWSCognitoCredentialsProvider(regionType: .USWest2,
                                                                                           identityPoolId: myIdentityPoolId)
    if let configuration = AWSServiceConfiguration(region: .USWest2, credentialsProvider:credentialsProvider) {
        AWSS3.register(with: configuration, forKey: "defaultKey")
    }

    return AWSMobileClient.sharedInstance().interceptApplication(application,
                                                                 didFinishLaunchingWithOptions: launchOptions)
}
Run Code Online (Sandbox Code Playgroud)

使用Instruments,我已经测试了删除我共享的所有代码(返回AWSMobileClient.sharedInstance().interceptApplication除外)并发现我没有内存泄漏,但是一旦我将其添加回去,我就会遇到所有泄漏... 是什么赋予了?

如果它有帮助,我想列出我的AWS桶的对象,它使用以下代码:

 let listRequest: AWSS3ListObjectsRequest = AWSS3ListObjectsRequest()
    let s3 = AWSS3.s3(forKey: "defaultKey")

    listRequest.bucket = Constants.AWS_BUCKET
    listRequest.prefix = Constants.SPECIAL_PREFIX

    s3.listObjects(listRequest).continueWith { (task) -> AnyObject? in
}
Run Code Online (Sandbox Code Playgroud)

我犯了明显的错误吗?

在此输入图像描述

memory-leaks amazon-s3 instruments amazon-web-services swift

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

将Google Play服务添加到非Gradle Android Studio项目中?

我有一个现有的项目是为Android Studio而没有gradle构建的,我正在尝试导入Google Play服务来修复 java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable异常.

唯一的问题是它似乎不可能......我已经考虑将它移植到gradle但代码库相当大(40多个活动)对于像我这样以前从未使用gradle的人来说,这将是一场噩梦.完成.

我正在尝试从SDK导入Google Play服务项目,但它会永远挂起"创建gradle文件".

以前有人有任何将此库加载到非gradle项目的经验吗?

顺便说一下,我已经尝试将项目加载到Eclipse中以查看我是否可以采取这种方式,但是构建路径会自我毁坏,我花了好几个小时尝试对它们进行排序无效.

java android google-play-services android-studio

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

AVPlayerViewController播放控件后退/前进不起作用

我能够通过presentViewController正确显示AVPlayerViewController."播放"和"暂停"按钮按预期工作,但"快进/后退"按钮不执行任何操作...我查看了文档,但没有看到任何提及我需要为它们显式实现手势功能.

我没有做任何特别的事情来使用mp4格式的本地视频文件来实例化AVPlayerViewContoller :

let videoURL = NSURL(fileURLWithPath: path)
let player = AVPlayer(URL: videoURL!)
let playerViewController = AVPlayerViewController()

playerViewController.player = player
self.presentViewController(playerViewController, animated: true) {
  playerViewController.player!.play()
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我发现很难相信没有其他人遇到过这种情况.

我认为它可能是:

  1. 因为它是本地mp4文件.
  2. 我需要手动实现ff/fb的触控回调.
  3. ???

mp4 ios avplayer avplayerviewcontroller

5
推荐指数
0
解决办法
462
查看次数

IOS 10宽色:我需要担心吗?

iOS 10 的发行说明中有一个标题为" 宽色"的部分.

有我迷惑的线是这个: 如果你的应用程序依赖于UIKit的夹紧元件值(无论你正在创建一个颜色或要求其成分值的颜色),你需要改变你的应用程序的行为,当你对iOS的链接10.

钳制元件值意味着什么?在objective-c或swift中看起来是什么样的,我如何更新它以符合iOS 10中的变化?

uicolor ios

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