Tag: 快速

快速3.0的结构枚举

我想创build一个结构,我想要初始化的枚举 struct CustomStruct { var variable1: String var variable2: AnyClass var variable3: Int init (variable1: String, variable2: AnyClass, variable3: Int) { self.variable1 = variable1 self.variable2 = variable2 self.variable3 = variable3 } } enum AllStructs: CustomStruct { case getData case addNewData func getAPI() -> CustomStruct { switch self { case getData: return CustomStruct(variable1:"data1", variable2: SomeObject.class, variable3: […]

UICollectionView马赛克布局

我需要为应用程序创build一个马赛克布局。 有一个完全dynamic的布局,这将是美好的,类似于下面的图片: 我正在使用这个非常酷的库 ,但只允许dynamic的高度。 有没有一个图书馆,或有一种方法来实现这一结果? 谢谢!

如何在af_setImageWithURL完成后将图像放入AutoPurgingImageCache?

我想将imageView.af_setImageWithURL imageView.af_setImageWithURL(URL)与AlamofireImage的AutoPurgingImageCache一起使用。 我怎么能通知af_setImageWithURL获取图像,所以我可以把它放到我的caching? 因为这是在后台完成的。 我喜欢这样的东西: imageView.af_imageFromCache(URL) ,如果它已经在那里设置图像从caching,否则下载asynchronous,然后设置图像并将其保存在caching中。

如何在Swift中调用Objective-C块的属性

我正在重写Swift中的一些Objective-C代码。 它是一个名为ActionSheetPicker的开放库的子类。 所以这里是我的Objective-C代码: #import "XXActionSheetStringPicker.h" @implementation XXActionSheetStringPicker + (instancetype)pickerWithTitle:(NSString *)title rows:(NSArray *)strings initialSelection:(NSInteger)index doneBlock:(ActionStringDoneBlock)doneBlock cancelBlock:(ActionStringCancelBlock)cancelBlockOrNil origin:(id)origin { XXActionSheetStringPicker *picker = [[self alloc] initWithTitle:title rows:strings initialSelection:index doneBlock:doneBlock cancelBlock:cancelBlockOrNil origin:origin]; //do something specific stuff UIBarButtonItem *cancelBarButton = [self itemWithtitle:NSLocalizedString(@"GLOBAL_CANCEL", nil) action:@selector(cancelAction) target:picker]; [picker setCancelButton:cancelBarButton]; UIBarButtonItem *doneBarButton = [self itemWithtitle:NSLocalizedString(@"GLOBAL_OK", nil) action:@selector(doneAction) target:picker]; [picker setDoneButton:doneBarButton]; return picker; } […]

将枚举大小写的关联值提取到一个元组中

我知道如何使用switch语句在枚举情况下提取关联的值: enum Barcode { case upc(Int, Int, Int, Int) case quCode(String) } var productBarcode = Barcode.upc(8, 10, 15, 2) switch productBarcode { case let .upc(one, two, three, four): print("upc: \(one, two, three, four)") case .quCode(let productCode): print("quCode \(productCode)") } 但我想知道是否有一种方法来提取使用元组的关联值。 我试过了 let (first, second, third, fourth) = productBarcode 不出所料,它没有奏效。 有没有办法将枚举案件的关联值变成一个元组? 或者这是不可能的?

asynchronousswift 3

我需要进行asynchronous调用,以便第二个方法只在第一个方法完成后调用。两种方法都是networking调用。 像这样的东西: signIn() getContacts() 我想确保getContacts只在signIn完成后被调用。 FWIW,我无法编辑方法签名,因为它们来自Google SDK。 这是我试过的: let queue = DispatchQueue(label: "com.app.queue") queue.async { signIn() getContacts() }

UICollectionView中的最后一项不是alligned – Swift

我已经看到类似这个问题的一些问题,但没有一个真正帮助我。 我的collections视图中的最后一个项目总是低于其他项目,如下图所示: 如果我增加UICollectionView的高度,那么最后一个图像的alignment方式是正确的,但是在UICollectionView的顶部和底部之间存在巨大的差距,如下图所示: 细胞的大小由这个代码控制: func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { let image = UIImage(data: imageArray[indexPath.row]) var size = image?.size let height = size!.height let width = size!.width let imagewidth = (width / height) * 214 return CGSize(width: imagewidth, height: 214) } 据我所知,这应该是使每个图像的高度相同,这意味着原始图像的高度是多less并不重要。 我还有另一个收集视图,其中最后一项正确alignment,并以完全相同的方式设置,所以我有点困惑。 你觉得问题是什么? 我已经读过这可能是一个错误,但无论如何周围呢? 我仍然在学习Swift和一般的编程,所以如果你有任何其他的技巧,他们将非常感激。 谢谢

UIWebView不显示我的网页

对于一些背景信息,我试图展示的网页是一个当前在AWS的EC2上托pipe的Web应用程序。 后端是Python w / Flask,前端只是简单的HTML / CSS。 该URL具有HTTP,因为它尚未使用HTTPS进行保护。 当这个网页的URL被打开时,浏览器要求的第一件事是login凭证(浏览器询问,而不是网站)。 这个页面在我的iPhone上的移动版Safari 中加载,而且Safari成功地请求了凭据。 如果我input正确,它将正确加载页面。 所以我已经尝试在应用传输安全设置下允许任意负载以及使用以下按键的自定义的例外域: App Transport Security Settings Dictionary Exception Domains Dictionary my website URL Dictionary NSIncludesSubdomains Boolean (YES) NSExceptionAllowsInsecureHTTPLoads Boolean (YES) NSThirdPartyExceptionAllowsInsecureHTTPLoads Boolean (YES) NSExceptionMinimumTLSVersion String (TLSv1.0) NSExceptionRequiresForwardSecrecy Boolean (YES) 然而,每当我在模拟器上启动应用程序,所有我回来是一个白色的屏幕(如果需要可以张贴截图)。 这是我在ViewController.swift中的代码: import UIKit class ViewController: UIViewController { @IBOutlet var WebView: UIWebView! override func viewDidLoad() […]

适合UIBezierPath / CGPath圈

我需要将任意形状的pathassembly到一个圆的内部。 我可以通过计算大小,构build目标矩形,然后缩放path以适合目标矩形,来适应圆的矩形path。 let targetSize = circleDiameter / sqrt(2) let destRect = CGRect(x: 0, y: 0, width: targetSize, height: targetSize) // … Scale the path to the rect, using boundingBox of path. 但是扩展过程不是问题; 这真的是如何计算所需的规模。 基于边界框的方法对于非矩形形状提供了很差的适应性,并且对于诸如圆形的形状很不适合。 任何人都可以提出一种方法来适应任何一个圆的内部path? 谢谢。 [编辑 – 以后大量的研究] 在这个图像中可以看到问题: 蓝色矩形表示原始图像,修剪到path。 红色圆圈是最小的边界圆。 绿色矩形表示边界圆的边界框。 我需要计算红圈,所以我可以用它来缩放path。 原来这就是所谓的最小包围圆问题(AKA最小的围合圆)。 唉,我找不到任何已知algorithm的Swift或Objective-C实现,并可能需要解决一些Java / JS / C ++代码。 如果有人能节省我的时间,请做! 温暖的模糊入境。 [另一个编辑,时间飞逝] 从中国的angular度来看,这是一个相当“有趣”的问题。 […]

如何通过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) […]