Tag: swift3

FAILURE:错误域= NSURLErrorDomain代码= -1004“无法连接到服务器”。

在任何事情之前,我想列出我已阅读的post,并试图从(避免重复)实现答案: iOS 9和iOS 10中的应用程序传输安全问题 http://iosdevtips.co/post/121756573323/ios-9-xcode-7-http-connect-server-error http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/ 我正在开发一个SDK,我已经创build了一些UItesting。 我正在尝试不连接到后端系统,并通过在本地计算机上运行的存根服务器来模拟它们,同时进行testing。 所有的请求必须去这个服务器。 我创build了一个不会被提交到App Store的虚拟应用程序。 通过这个应用程序,我打算testingSDK的屏幕。 我跟着上面的post和文章,并包括一个例外,以不安全的连接到我的本地服务器到虚拟应用程序的Info.plist文件。 它看起来像下面这样: <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> <key>NSAllowsArbitraryLoadsInWebContent</key> <true/> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 是的,我允许各种例外。 networking响应不会抱怨应用程序没有对localhost的不安全连接发生exception,而只是返回以下内容: [Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x170248940 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://localhost:7878/endpoint, NSErrorFailingURLKey=http://localhost:7878/endpoint, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, […]

estimatedHeightForRowAt不被调用滚动

为什么方法estimatedHeightForRowAt的UITableViewDelegate协议不被调用,当我们滚动UITableView ? 方法estimatedHeightForRowAt仅在我们初始化UITableView时调用。

UNCalendarNotificationTrigger不会被存储,除非重复是真实的

我注意到,如果我创build一个自定义date的UNCalendarNotificationTrigger它不会被添加,除非我把: let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: **true**) 苹果例子是: let date = DateComponents() date.hour = 8 date.minute = 30 let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true) 这是有道理的重复==真实。 在我的情况下,我不需要创build一个重复多次的通知,但是我需要在特定的日历date(这当然是将来)中只触发一次的多个通知。 如果我在做: let calendar = Calendar(identifier: .gregorian) let formatter = DateFormatter() formatter.dateFormat = "yyyyMMdd" let newdate = formatter.date(from: "20161201") let components = calendar.dateComponents(in: .current, from: newdate!) let trigger […]

如何通过OutputStream发送NSData

你可以在github上查看这个项目: https : //github.com/Lkember/MotoIntercom/ 重要的类是PhoneViewController.swift 我有一个AVAudioPCMBuffer。 然后使用这个函数将缓冲区转换为NSData: func audioBufferToNSData(PCMBuffer: AVAudioPCMBuffer) -> NSData { let channelCount = 1 let channels = UnsafeBufferPointer(start: PCMBuffer.floatChannelData, count: channelCount) let data = NSData(bytes: channels[0], length:Int(PCMBuffer.frameCapacity * PCMBuffer.format.streamDescription.pointee.mBytesPerFrame)) return data } 根据OutputStream.write的文档,需要将这些数据转换为UnsafePointer <UInt8>。 https://developer.apple.com/reference/foundation/outputstream/1410720-write 这是我迄今为止: let data = self.audioBufferToNSData(PCMBuffer: buffer) let output = self.outputStream!.write(UnsafePointer<UInt8>(data.bytes.assumingMemoryBound(to: UInt8.self)), maxLength: data.length) 当收到这个数据时,使用这个方法将它转换回AVAudioPCMBuffer: func dataToPCMBuffer(data: NSData) […]

用AlamoFire会话pipe理器下载调用时不正确的参数标签

AlamoFire的文档: let destination: DownloadRequest.DownloadFileDestination = { _, _ in let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let fileURL = documentsURL.appendingPathComponent("pig.png") return (fileURL, [.removePreviousFile, .createIntermediateDirectories]) } 我的代码: fileprivate let manager: Alamofire.SessionManager = { … let destination: DownloadRequest.DownloadFileDestination = { _, _ in let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let fileURL = documentsURL.appendingPathComponent(".mp4") return (fileURL, [.removePreviousFile, […]

Google脸部检测在转换为图像并尝试检测脸部时会崩溃

我正在创build一个带有滤镜的自定义相机。 当我添加下面的行时,它崩溃而不显示任何exception。 //设置video输出 func setupBuffer() { videoBuffer = AVCaptureVideoDataOutput() videoBuffer?.alwaysDiscardsLateVideoFrames = true videoBuffer?.videoSettings = [(kCVPixelBufferPixelFormatTypeKey as NSString): NSNumber(value: kCVPixelFormatType_32RGBA)] videoBuffer?.setSampleBufferDelegate(self, queue: DispatchQueue.main) captureSession?.addOutput(videoBuffer) } public func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) { if connection.videoOrientation != .portrait { connection.videoOrientation = .portrait } guard let image = GMVUtility.sampleBufferTo32RGBA(sampleBuffer) else { print("No Image 😂") […]

将填充和边框添加到UIImageView

如何在UIImageView和边框之间添加填充? Img.layer.cornerRadius = Img.bounds.width / 2 Img.layer.borderWidth = 2 Img.layer.borderColor = UIColor.blue.cgColor Img.clipsToBounds = true 喜欢这个:

如何在swift 3中根据数组做选中勾选?

我有一个数组,其中选定的名称将被存储并传递到视图控制器之前,当我需要去以前的视图控制器,然后以前选定的复选标记需要被选中,但在这里是启用最后选定的元素只有问题是如果我select三,那么它不是select三它是检查标记只有最后一个元素,但我需要三个选定任何人都可以帮助我如何使复选标记被选中的三个要素? protocol ArrayToPass: class { func selectedArrayToPass(selectedStrings: [String]) } class FilterSelectionViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { var productName = [String]() var productprice = [String]() var imageArray = [String]() var idArray = [Int]() let urlString = "http://www.json-generator.com/api/json/get/bOYOrkIOSq?indent=2" var values = [String]() var selected: Bool? var delegate: ArrayToPass? var nameSelection: Bool? var namesArray = [String]() override func viewDidLoad() { super.viewDidLoad() […]

如何parsing提供更多数据的另一个url的json数据

我有点困惑,我将如何parsing一个json API给我20个对象,然后给我一个“下一个”的关键有一个url,给了我另外20个对象。 我正在使用这个口袋妖怪API 。 它给了我4个键: 计数,上一个,结果和下一个 。 我试图在集合视图中显示它们,但不是全部同时显示。 我想在集合视图向下滚动时加载更多。 我只是想要得到这个名字。 这就是我的代码的样子。 我得到它加载收集视图中的第一个20口袋妖怪。 不过我不知道如何加载下一个20口袋妖怪或20后。 这是如果链接不起作用的json文件的样子。 我将不胜感激任何帮助。 🙂

如何在按下button后提示用户推送通知许可?

我读了如何控制何时提示用户在iOS中的推送通知权限和类似的问题,但他们没有写在Swift 3中。 我已阅读在Xcode 8 / Swift 3.0注册推送通知? 五次。 我一遍又一遍在Simulator中运行我的应用程序,但第一次之后,应用程序从来没有提示用户推送通知的权限。 我使用Xcode 8 / Swift 3.0中的注册推送通知的代码? 并不断尝试不同的答案,并将代码移到不同的地方,以便用户只需按下某个button就可以获得许可,而不是在应用程序启动时立即获得许可 。 我是否必须注册一个Apple ID等等的推送通知代码才能在模拟器中工作 ?