Tag: swift

在Swift中用UIViewController的自定义init,在storyboard中设置界面

我有问题为UIViewController的子类编写自定义的init,基本上我想通过viewController的init方法传递依赖,而不是像viewControllerB.property = value直接设置属性 所以我为我的viewController做了一个自定义的init,并调用超级指定的init init(meme: Meme?) { self.meme = meme super.init(nibName: nil, bundle: nil) } 视图控制器界面驻留在故事板中,我也使自定义类的界面成为我的视图控制器。 即使你没有在这个方法中做任何事情,Swift也需要调用这个init方法。 否则,编译器会抱怨… required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } 问题是,当我尝试使用MyViewController(meme: meme)调用我的自定义init时,它并没有在我的viewController中初始化属性… 我试图debugging,我发现在我的viewController, init(coder aDecoder: NSCoder)先调用,然后我的自定义的init后来调用。 但是这两个init方法返回不同的self内存地址。 我怀疑我的viewController初始化有什么问题,它总是会返回self与init?(coder aDecoder: NSCoder) ,没有实现。 有谁知道如何正确地为您的viewController自定义初始化? 注意:我的viewController的界面是在storyboard中设置的 这里是我的viewController代码: class MemeDetailVC : UIViewController { var meme : Meme! @IBOutlet weak var editedImage: UIImageView! // […]

从parsingsdk中获取Swift图像 – 崩溃

我从Parse中检索一组图像,使用下面的代码使用Swift。 var imageResources : Array<UIImage> = [] override func viewDidLoad(){ super.viewDidLoad() self.loadImages() } func loadImages(){ var query = PFQuery(className: "Images") query.orderByDescending("objectId") query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in if(error == nil){ for object : PFObject! in objects as [PFObject] { var thumbNail = PFFile() thumbNail = object["image"] as PFFile println("thumNail \(thumbNail)") thumbNail.getDataInBackgroundWithBlock({ (imageData: NSData!, error: NSError!) in […]

如何防止search栏在滚动消失? iOS Swift

我正在创build一个联系应用程序。 我有一个滚动条在我的表视图的顶部。 当我向下滚动search栏消失。 如何防止search栏在滚动消失? 我希望它像第一张照片一样始终保持在页面顶部。 这是我的故事板的图片: 这是我的视图控制器代码,如果解决scheme不在故事板中: class ViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating { //manages search bar var searchController:UISearchController! var contacts = [Contact]() //array to hold contacts that match the search results var filteredContacts = [Contact]() override func viewDidLoad() { super.viewDidLoad() //initialize the defaults manager class NSUserDefaultsManager.initializeDefaults() //search controller searchController = UISearchController(searchResultsController: nil) searchController.searchBar.sizeToFit() tableView.tableHeaderView […]

如何使用swift只在已知的时间内stream式传输audio

我使用的AVPlayer(我不需要,但我想stream,尽快开始播放)播放m4a文件(这是一个iTunesaudio预览)。 只有我只想让它扮演那个文件的一部分。 我可以设置开始时间,但不是结束时间。 使用计时器不起作用,因为我使用URL作为http地址。 我正在玩,因为它没有下载文件。 我也看到了Objective-C中的解决scheme,使用KVO来了解音乐什么时候开始播放,但我认为这不是最好的方法,因为我使用的是快捷方式,也是因为可能发生的故障,所以歌曲不会停在正确的时刻。 任何帮助? 任何build议? 谢谢

UICollectionView删除部分与UICollectionViewFlowLayout中断

我有一个数据集被分为多个部分,但是,我想显示在一个集合查看没有中断部分。 这里是我想要实现的一个例子: Instead of: 0-0 0-1 0-2 0-3 1-0 1-1 2-0 3-0 I want: 0-0 0-1 0-2 0-3 1-0 1-1 2-0 3-0 我意识到解决scheme可能在于一个自定义的UICollectionViewLayout子类,但我不知道如何实现这样的东西。 谢谢

使用Swift绘制折线

我想了解如何使用Swift绘制多段线。 我查看了文档,引用了一些教程,并检查了一些其他的SOpost,但我仍然无法在我的地图上画线。 这是我的代码。 有人告诉我我在这里做错了什么? import UIKit import MapKit class FirstViewController: UIViewController { @IBOutlet weak var map: MKMapView! override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) let location = CLLocationCoordinate2D( latitude: -73.761105, longitude: 41.017791 ) let span = MKCoordinateSpanMake(0.07, 0.07) let region = MKCoordinateRegion(center: location, span: span) map.setRegion(region, animated: true) let annotation = MKPointAnnotation() annotation.setCoordinate(location) annotation.title = "White […]

AVPlayerViewController使用纯audioAVPlayer

刚开始与AVKit,我想播放一些audio。 在Mastering Modern Media Playback中使用新的AVPlayerViewController会很好,所以我有一个现成的播放/暂停/searchUI。 我基本上有一个容器视图的故事板,有一个embedded到AVPlayerViewController的segue。 然后我使用: override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if (segue.identifier == "embedAudio") { var playerViewController:AVPlayerViewController = segue.destinationViewController as AVPlayerViewController playerViewController.player = AVPlayer(URL: NSURL(string: "http://dts.podtrac.com/redirect.mp3/files.serialpodcast.org/sites/default/files/podcast/1420057326/serial-s01-e01.mp3")) } } 它embedded很好,并播放,但它有一个大的黑色的QuickTime符号video将是。 我想知道是否有办法让它看起来更像音乐或播客应用程序。

Swift中的关联对象,全局键实际上是否生成特定的实例?

要在Swift中拥有关联对象,只需使用内存地址作为句柄,然后使用objc调用。 通常的示例代码,你可以谷歌无处不在: var keyA:UInt8 = 0 var keyB:UInt8 = 0 extension UIViewController { var aoAA: String? { get { return objc_getAssociatedObject(self, &keyA) as? String } set { objc_setAssociatedObject(self, &keyA, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN) } } var aoBB: String? { get { return objc_getAssociatedObject(self, &keyB) as? String } set { objc_setAssociatedObject(self, &keyB, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN) } } } 这工作正常, […]

NSData contentsOfUrl返回nil

我在StackOverflow上发现了几个类似的问题,但是没有一个解决我的问题。 我正在尝试从url获取图片。 以下是我如何做到这一点: let url = NSURL(string: "http://pic3.zhimg.com/8161ba9638273e0fb1a0201789d22d8e_m.jpg") let data = NSData(contentsOfURL: url!) let image = UIImage(data: data!) 但是我得到一个错误,告诉我data是零。 我该如何解决这个问题? 谢谢。 UPDATE 以下是错误的一些截图:

什么是声明`typedef SomeClass <SomeProtocol> MyType`的Swift等价物?

我目前正在写一些主要是Objective-C的项目中的Swift代码。 在我们的ObjC代码中,我们有一个头声明typedef GPUImageOutput<GPUImageInput> MyFilter; 。 然后我们可以声明一个GPUImageOutput ,它只能是实现GPUImageInput的GPUImageOutput子类。 (注意: GPUImageOutput和GPUImageInput不是我自己定义的;它们是GPUImage库的一部分) 我们的Swift代码似乎没有认识到这一点,即使头文件在我们的桥接头文件中是#import。 我试图在Swift中复制这个声明,但是这些都不是正确的语法: typealias MyFilter = GPUImageOutput, GPUImageInput typealias MyFilter = GPUImageOutput : GPUImageInput