小编Kir*_*iya的帖子

如何使用Contacts Framework(iOS9)获取容器名称

我在应用程序中使用Contacts框架.我想要做的是按容器对所有联系人进行分类.例如,Facebook联系人将在"Facebook"标题下,谷歌联系人在"谷歌"下.但是,当我打印容器的名称时,有时会出现空或无效或模糊的内容,如"地址簿".有没有办法找出哪个容器属于哪个帐户(本地,脸书,谷歌等).提前致谢.

    CNContactStore *contactStore = [[CNContactStore alloc]init];
    NSArray *keysToFetch = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactIdentifierKey,CNContactMiddleNameKey,CNContactPhoneNumbersKey];
    NSError *error;
    NSArray *containers = [contactStore containersMatchingPredicate:nil error:&error];
    for (CNContainer *container in containers) {
        NSLog(@"Container: %@",container.name);
    }
Run Code Online (Sandbox Code Playgroud)

objective-c ios9.1

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

使用TrueTime获取与设备无关的时间有多可靠?

我最近发现了一个名为TrueTime的库,用于获取不依赖于设备时间的时间.它使用NTP来获取时间.

https://github.com/instacart/TrueTime.swift

因为这个库主要是为swift 3而构建的.但是我找到了一个帖子,其中对文件进行了一些更改以使其快速兼容.

https://github.com/instacart/TrueTime.swift/issues/39

因为我正在使用swift和使用pod这个库.我解锁了pod并在库中进行了更改以使用swift 4.

这个图书馆有多可靠?

我担心的是

  1. 提交应用后Apple批准.

  2. 支持即将推出的swift和iOS版本.

这个图书馆有更好的替代方案吗?

ntp ios swift

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

“缺少所需的模块 Firebase” - 在动态框架中导入静态库

我有一个动态框架 X,这个框架使用手动导入的 Firebase SDK(静态库)。

我还有一个普通的 iOS 项目 Y,其中包含框架 X 作为嵌入式二进制文件。X 导入到 Y 项目的 AppDelegate.swift 中。

import X
Run Code Online (Sandbox Code Playgroud)

在这里我收到此错误:“缺少必需的模块 Firebase”

这怎么可能?有一些特定的程序可以在框架中设置 Firebase 静态库吗?

static-libraries firebase swift

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

http请求删除并放置

下面是我用于获取和发布 HTTP 请求的代码。我想知道的是如何执行删除和放置的 HTTP 请求。我已经让 get 和 post 工作成为可能。我想知道如何根据下面的代码删除和放置。当我想将其更改为删除时,在我的邮政编码中更改什么?缺少什么?我想使用 ID 删除,例如“id”:16,

let parameters = ["name": "test", "desc": "test" , "reward":"1.00" , "sched":"2018-04-05T11:49:51+08:00",  "occurrence":["name": "once"]
    , "status": "created",  "created_by": "test@gmail.com","created_for": "test.com"] as [String : Any]

guard let url = URL(string: "http://test.tesst.eu:8000/api/v1/test/") else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else { return }
request.httpBody = httpBody

let session = URLSession.shared
session.dataTask(with: request) { (data, response, …
Run Code Online (Sandbox Code Playgroud)

httprequest ios swift

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

AudioUnitInitialize 失败,错误代码为 1701737535 'ent?' 报警中断后

我正在使用 VOIP 应用程序。该应用程序与 CallKit 一起运行良好。

如果警报在通话中触发,我将面临问题。每次当警报停止触发(音频中断结束)时,我们都会尝试在 AVAudioSession 上 setActive: 。但它总是给出代码 1701737535 的错误,即。“ent?”。

当我尝试初始化音频单元时,会发生同样的错误。不使用 CallKit 它工作正常。

任何人都遇到过在音频中断结束时激活音频会话的问题。

我在同一场景中收到不同的错误“!pri”561017449,但这次由于本机电话应用程序而发生中断。

问题是 100% 可复制的。尝试了许多点击和跟踪,例如线程、延迟或调用 setActive:YES 而不调用 setActive:YES。但没有运气。

总结在这里:

  1. 收到错误 1701737535 即。“恩特?” 如果由于警报而中断。

  2. 收到错误 561017449 即。'!pri' 如果由于本机调用而中断

仅当将 CallKit 与 VIOP 结合使用时才进行复制。

任何人都帮忙。

voip interruption ios avaudiosession callkit

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

在同一应用程序中为不同屏幕制作可重用的表格视图的最佳方法是什么?

我正在快速开发类似于Instagram的社交ios应用程序。我有2个屏幕,其中包含几乎与提要相同的显示。第一个是包含表视图的简单提要屏幕,第二个是包含配置文件信息的表视图标题的配置文件屏幕,并且该表视图应包含第一个屏幕的相同数据。

我能够做到这一点,但是我不得不在第一屏和第二屏中为tableview重复相同的代码:(cellforRow,Number,数据和计算...)

在这种情况下避免重复数据的最佳方法是什么?

tableview ios swift swift3

4
推荐指数
1
解决办法
2407
查看次数

FCM推送通知在iOS 11中无效

我需要处理推送通知,这是使用较低版本的ios完成的,但在ios 11中从未收到任何推送通知.我使用的是Firebase云消息传递.拜托,任何人都有解决方案然后请分享.

apple-push-notifications ios firebase swift

2
推荐指数
1
解决办法
4779
查看次数

为什么我的谷歌登录成功后没有显示帐户选择?

我已经成功地在我使用 Firebase 的应用中实现了一个谷歌登录。当我第一次使用谷歌账户登录时,会出现一个选择谷歌账户的对话框。

但是在我成功登录然后注销后,当我再次尝试登录时,选择谷歌帐户的对话框不再出现,它只是直接将我发送到主菜单。

每次用户通过谷歌登录时,我都希望始终显示该对话框。这是我使用的代码,在我的 VC 中有谷歌登录按钮

import UIKit
import Firebase
import GoogleSignIn
import SVProgressHUD

class AuthenticationVC : UIViewController, GIDSignInUIDelegate, GIDSignInDelegate {

    var userID : String?

    override func viewDidLoad() {
        super.viewDidLoad()

        // delegate declaration
        GIDSignIn.sharedInstance().uiDelegate = self

        // For Google SignIn Using Firebase
        GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
        GIDSignIn.sharedInstance().delegate = self
    }




    @IBAction func googleButtonDidPressed(_ sender: Any) {
        GIDSignIn.sharedInstance().signIn()
    }



}


extension AuthenticationVC {

    // MARK: - Firebase Google Sign In Authentication Methods
    // The methods below will be triggered if the …
Run Code Online (Sandbox Code Playgroud)

ios swift firebase-authentication google-signin

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

单击时查看抖动动画错误

我一直在使用以下UIView扩展来改变视图:

func shake(count: Float = 4, for duration: TimeInterval = 0.5,
           withTranslation translation: CGFloat = 5) {
    let animation: CABasicAnimation = CABasicAnimation(keyPath: "transform.translation.x")
    animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
    animation.repeatCount = count
    animation.duration = duration / TimeInterval(animation.repeatCount)
    animation.autoreverses = true
    animation.fromValue = NSValue(cgPoint: CGPoint(x: -translation, y: self.center.y))
    animation.toValue = NSValue(cgPoint: CGPoint(x: translation, y: self.center.y))
    layer.add(animation, forKey: "shake")
}
Run Code Online (Sandbox Code Playgroud)

以及用法:

view.shake(count: 3, for: 0.2, withTranslation: 8)
Run Code Online (Sandbox Code Playgroud)

这适用于摇动视图(在我的情况下,我正在摇动一些按钮、UIView 和一些图像视图)。当我尝试在抖动动画期间单击其中一个视图时出现问题。

我收到:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSConcreteValue doubleValue]:无法识别的选择器发送到实例 0x600000442640”

在按钮的情况下,如果我禁用按钮然后启动抖动动画,它似乎可以防止错误发生。不幸的是,这似乎不适用于图像视图和 UIViews。

我还禁用了图像视图/ UIView 上的用户交互,但无济于事。

我觉得这与在对视图进行动画处理时在命中测试检查期间将错误的坐标传递给较低层有关。

对此错误的任何见解将不胜感激。

ios swift swift4

0
推荐指数
1
解决办法
421
查看次数