Tag: 快速

Swift Multi-arg Selector没有被调用

这是在Objective-C中正常运行的代码, [dataFetcher fetchDataWithRequest:authorizeRequest delegate:self didFinishSelector:@selector(didReceiveRequestToken:data:) didFailSelector:@selector(didFailOAuth:error:)]; 它在Objective-C中调用这两种方法。 但是当我在Swift中使用Selector时,它不起作用。 dataFetcher?.fetchDataWithRequest(requestTokenRequest, delegate: self, didFinishSelector:Selector("didReceiveRequestToken:data:"), didFailSelector: Selector("didFailOAuth:error:")) 这里我打电话的方法, func didReceiveRequestToken(ticket:OAServiceTicket,data:NSData){ } 我已经使用StackOverFlow给出的解决scheme,但他们没有为我工作。 提前致谢。

spritekit:粒子关键帧序列的麻烦

这应该是非常简单的。 我试图让我的粒子淡出使用关键帧序列..但是当我使用关键帧序列他们不淡出。 不知道我可能做错了什么。 粒子创build: static func debris(size: Int) -> Array<SKEmitterNode> { if size > 5 { fatalError("we don't have that much debris") } var debrisArr: [SKEmitterNode] = [] for i in 1…size { let debris: SKEmitterNode = SKEmitterNode(fileNamed: "debris") debris.particleTexture = SKTexture(imageNamed: "debris\(i)") convertNumRef(&debris.particleScale) convertNumRef(&debris.particleScaleRange) debris.particleRotationSpeed = debris.particleRotationSpeed * CGFloat.randomSign() // THE PART WE CARE […]

在Swift 3中使用Audio Queue获取麦克风input

我正在开发一个应用程序,通过内置麦克风logging语音,并将其发送到服务器现场。 所以我需要在录制时从麦克风获取字节stream。 谷歌search和堆栈溢出了一段时间之后,我想我弄明白了它应该如何工作,但事实并非如此。 我认为使用audio队列可能是要走的路。 这是我到目前为止所尝试的: func test() { func callback(_ a :UnsafeMutableRawPointer?, _ b : AudioQueueRef, _ c :AudioQueueBufferRef, _ d :UnsafePointer<AudioTimeStamp>, _ e :UInt32, _ f :UnsafePointer<AudioStreamPacketDescription>?) { print("test") } var inputQueue: AudioQueueRef? = nil var aqData = AQRecorderState( mDataFormat: AudioStreamBasicDescription( mSampleRate: 16000, mFormatID: kAudioFormatLinearPCM, mFormatFlags: 0, mBytesPerPacket: 2, mFramesPerPacket: 1, // Must be […]

Scenekit – 基于世界坐标轴的旋转子子节点的convertTransform

我有一个下面的场景: [Root Node] | [Main Container] | | [Node A Wrapper] [Node B Wrapper] | | [Node A] [Node B] 我已经设置了平移手势识别器,当您在开放空间平移时,[主容器]以+/- Double.pi / 2(90度)在选定的方向上旋转。 当平底锅在其中一个子节点A,B(我在touchesBegan上testing了这个)时,我想沿着世界轴的方向旋转子节点(再次以90度递增)。 我正在使用从根节点的convertTransform()旋转[主容器],它工作正常,旋转沿着世界轴进行 – 主容器的位置是(0,0,0),我相信这使得它更容易。 我包装子节点的原因是它们在包装器中有本地位置(0,0,0),这应该有助于围绕其原点的旋转。 但是,当我在[主容器]上执行旋转时,它们也被旋转,它们的局部轴的方向被改变,并且围绕与我想要的不同的轴执行旋转。 在我对变换matrix的(非常有限的)理解中,我假设我需要以某种方式链接和乘以父节点的convertTransform产生的matrix,或者以某种方式使用worldTransform属性,但是我尝试了奇怪旋转的结果。 任何帮助,将不胜感激!

暂停和重新创build计时器与通知问题Swift

所以我有两个计时器,一个提高分数,一个产生敌人。 我使用通知来使计时器无效,然后我使用另一个来重新创build计时器。 当我退出,然后打开应用程序,有两组敌人彼此顶部产卵。 我认为timerRecreate = true,GameScene中的常规定时器也被调用。 GameViewController.swift文件: class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("pauseTimers:"), name:UIApplicationWillResignActiveNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("startTimers:"), name:UIApplicationDidBecomeActiveNotification, object: nil) } func pauseTimers(notification : NSNotification) { println("Observer method called") timer.invalidate() scoretimer.invalidate() } func startTimers(notification : NSNotification) { println("Observer method called") timerRecreate = true } GameScene.swift中的定时器代码 override func […]

阿拉莫菲尔多部分的要求

我是新的快速编程。 我正在尝试通过alamofire做多部分请求。问题是我的参数中的一个值是对象的数组。 我的问题是如何将对象数组追加到Multipart请求。 这是我的参数。 let parameters = [ "originguid":"63d6sd5", "signees":[Signess], //Here is issue "signees"is an array of objects "customer":"yes" ] as [String : Any] 这是我的要求 Alamofire.upload( .POST, URLString: myUrl, multipartFormData: { multipartFormData in if let img = self.imagePicked { multipartFormData.append(UIImageJPEGRepresentation(img, 0.2)!, withName: "fileset",fileName: "file.png", mimeType: "image/jpg") } if let file = self.filePicked{ let fileData = […]

在imageView顶部绘制带有清晰背景的矩形

我想绘制一个矩形与一个随意的边框颜色与清晰的背景上的一个imageView 。 我需要遍历一组坐标,并为我的图像添加适当的矩形。 我不能设法弄清楚矩形背景颜色。 代码如下: // the draw class class Draw: UIView { override init(frame: CGRect) { super.init(frame: frame) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { let h = rect.height let w = rect.width let color:UIColor = Palette.getRandomColour() //var drect = CGRect(x: (w * […]

如何在iOS后台运行服务来接收本地通知?

我正在开发应用程序,其中有一个与服务器的MQTT连接,服务器正在发送一些与设备和用户界面更改相关的值。 但是,当应用程序在后台用户应该得到本地通知,某些值被改变。 我知道后台服务不允许在iOS中,但我想确保这是没有办法做到这一点。 我通过UIApplication.shared.beginBackgroundTask在后台成功地添加了本地通知,但是只有在苹果终止应用之后,它才能正常工作3分钟。 func registerBackgroundTask() { backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in self?.endBackgroundTask() } assert(backgroundTask != UIBackgroundTaskInvalid) } func endBackgroundTask() { print("Background task ended.") UIApplication.shared.endBackgroundTask(backgroundTask) backgroundTask = UIBackgroundTaskInvalid } 而只是调用self.registerBackgroundTask()使应用程序在后台运行三分钟。 接下来我要去尝试的是后台抓取和小部件运行服务,在这里我只是想有一些build议,有没有什么机会,以上两个之一将工作?

CollectionView的单元格不适合屏幕

我在TableView单元格中有CollectionView : CollectionView单元格的约束 当我在iPhone 5s上运行app fe时,我发现(单元格不适合屏幕显示): 但是,滚动后,我看到: 我知道重用,但如何显示细胞从开始必须(适合屏幕)?

Swift:简化菜单button逻辑

我在Swift中有一个游戏,每个关卡都是一个从GameScene基类inheritance而来的单独的类(这样做对于我所做的事来说更简单了,不要评价我)。 我也有一个菜单,每个级别都有一个button。 这是button如何加载级别: override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let t = touches.first { let node = atPoint(t.location(in: self)) if let name = node.name { let newScene: GameScene! switch Int(name)! { case 1: newScene = Level1(size: frame.size) case 2: newScene = Level2(size: frame.size) case 3: newScene = Level3(size: frame.size) case 4: […]