小编Joj*_*dmo的帖子

如何使用Swift 2.0声明递归枚举

我正在尝试在Swift 2中尝试递归枚举,但是我遇到了编译错误.

我开始试图定义我自己的例子:

enum Tree {
    case Empty
    indirect case Node(value: Int, left: Tree, right: Tree)
}
Run Code Online (Sandbox Code Playgroud)

但是得到一个错误:"一行上的连续声明必须用:"分隔.

所以,我从他们的WWDC15尝试了Apple自己的例子.Swift 演示中的新功能:

enum Tree<T> {
  case Leaf(T)
  indirect case Node(Tree, Tree) 
}
Run Code Online (Sandbox Code Playgroud)

但它也与此相同的编译错误.如果我创建一个新的游乐场并粘贴这些行,则会导致错误 - 请参阅屏幕截图,或者如果在Xcode项目中同样的话,请参阅其他截图.

我正在使用Xcode 7.0.

为什么我甚至无法获得Apple的编译示例?

在此输入图像描述 在此输入图像描述

xcode ios swift swift2

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

iTunes应用程序名称

我的iOS应用程序的名称已被采用English US.

我注意到,我能够使用,我想的名字,如果我做的默认语言English UKEnglish CA代替English US.

将默认语言设置为English UKEnglish CA,并且没有语言English US不允许该应用程序在美国可见?是否有任何其他解决方法可以用来制作它,以便我可以使用我想要的美国应用程序商店的应用程序名称?

itunesconnect

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

使用iOS 9 beta 3+时,常规设置中没有"配置文件"选项卡

当我尝试运行我的应用程序时iOS 9 beta 3,我也会beta 4 & 5收到错误消息Untrusted Enterprise Developer

不受信任的企业开发人员

"iPhone开发者:名称(id)"尚未在此iPhone上受到信任.在此开发人员受到信任之前,他们的企业应用程序将无法使用.

在以前的测试版中,摆脱消息的方法是转到General > Profiles设置应用程序并信任开发人员,但这不存在于测试版3,4或5中.

我已经尝试在Profiles设置应用中搜索,并且名称Profiles & Device Management显示在一般情况下.然而,当我点击它时,我只是被带到了常规选项卡的顶部,并且Profiles & Device Management也没有出现.

我在设备上拥有所有正确的配置文件,它们都是有效的.

这是iOS 9 beta 3+中的错误,还是有其他方式可以信任开发人员?

ios ios9 xcode7

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

取消Alamofire的所有网络服务电话

在我的项目中,有4个Web服务在后台运行.我想在没有等待响应的情况下从当前状态注销时停止所有这些服务.我找到了这样做的代码

Alamofire.Manager.sharedInstance.session.invalidateAndCancel()
Run Code Online (Sandbox Code Playgroud)

但在打电话给我之后,我无法再次拨打服务电话.有什么办法可以取消所有正在运行的请求吗?

这是我的服务调用代码

func getAllCount(parameters: [String: AnyObject],completion: (success : Bool) -> Void) {

            PKHUD.sharedHUD.contentView = PKHUDTextView(text: "Loading...")
            PKHUD.sharedHUD.show()
            request = Alamofire.request(.POST, GlobalConstants.KGetAllCount, parameters: parameters, encoding:.JSON).responseJSON
                {
                    response in switch response.result {
                    case .Success(let JSON):
                        PKHUD.sharedHUD.hide()
                        print("Success with JSON: \(JSON)")
                        let status : NSString = JSON.valueForKey("status") as! String
                        if(status .isEqualToString("1")){
                            MyViewState.QJoined = JSON.valueForKeyPath("data.TotalJoinQueue") as! String
                            MyViewState.Qstarted = JSON.valueForKeyPath("data.TotalCreatedQueue") as! String
                            MyViewState.Bumps = JSON.valueForKeyPath("data.TotalBump") as! String
                            completion(success: true)

                            break
                        }else{
                            completion(success: false)
                            Helper.globalAlert(JSON.valueForKey("data") as! String)
                            break
                        }
                    case .Failure(let error):
                        PKHUD.sharedHUD.hide() …
Run Code Online (Sandbox Code Playgroud)

web-services nsurlsession swift alamofire swift2

10
推荐指数
2
解决办法
2943
查看次数

找到弹跳SKSpriteNode将采用的路径

当一个SKSpriteNode在屏幕上反弹时,我想显示两条线 - 一个是节点前进的地方,第二个是节点从其他sprite节点反弹的方向.

基本上,我想做这样的事情:

在此输入图像描述

我可以使用球的速度相当容易地创建第一行,第二行也相当容易,但前提是我知道线将与另一个SKSpriteNode碰撞的位置.

对于第一行,我正在创建一个SKShapeNode,并将其路径设置为与球的速度相同的线,但我不确定如何找到球从最近的障碍物反弹后所采取的路径.

简而言之 - 如何找到移动物体与另一个物体碰撞的点,然后找到它与物体碰撞后移动的方向?如果我知道它会碰到什么物体,但这不是一个问题,但是不能做一些非常低效的暴力破坏,我不知道如何找到球将要碰撞的物体以及在哪里.

我正在寻找这样的东西:

let line: SKSpriteNode // this is the first line
let scene: SKScene // the scene that contains all of the objects

// this doesn't exist, but I'm looking for something that would do this
let collisionPoint: CGPoint = line.firstCollision(in: scene)
Run Code Online (Sandbox Code Playgroud)

就我的目的而言,精灵上没有环境因素(没有重力,空气阻力等),它以恒定速度移动,并且不会在篮板中失去任何速度,但如果答案可能包括一种计算任何环境中精灵的第n次反弹的方法.

collision-detection ios sprite-kit swift

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

什么!! 在Objective-C中表示

我有这个代码:

- (BOOL)isConnected {
    return !!_sessionKey;
}
Run Code Online (Sandbox Code Playgroud)

其中_sessionKey在前面定义为:

NSString* _sessionKey;
Run Code Online (Sandbox Code Playgroud)

代码来自facebook-connect for iphone.

因为我通过查看其他人编写的代码来学习Objective-C.该!!在使用isConnection我的功能似乎没用,还是我失去了一些东西?它有什么作用?

objective-c

9
推荐指数
2
解决办法
818
查看次数

当我在xCode 5中验证我的应用时,获取错误不正确的广告标识符[IDFA]用法

在验证我的应用程序时,我收到错误消息

"广告标识符使用不当.您的应用包含广告标识符[IDFA] API,但您尚未遵守iOS中的限制广告跟踪设置."

我在广告标识符的准备上传页面上检查了"是".我在我的应用程序中使用revmob广告和flurry分析(COCOS2D-X项目).如何解决这个问题,我已经尝试了很多但没有成功.我使用下面的代码进入appdelegate但没有运气.

- (NSString *)identifierForAdvertising
{
   if([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled])
   {
       NSUUID *IDFA = [[ASIdentifierManager sharedManager] advertisingIdentifier];

       return [IDFA UUIDString];
   }

    return nil;
}  
Run Code Online (Sandbox Code Playgroud)

屏幕截图

xcode objective-c ios

7
推荐指数
2
解决办法
6222
查看次数

限制CloudKit中返回的结果数量

有没有办法限制在CKQuery?中返回的结果数量?

SQL,可以运行像这样的查询SELECT * FROM Posts LIMIT 10,15.LIMIT 10,15在CloudKit中有什么类似查询的最后部分吗?

例如,我想加载第5分的结果,然后,一旦用户向下滚动,我想加载下一个5分的结果,等等.在SQL中,它将是LIMIT 0,5,然后LIMIT 6,10,依此类推.

有一两件事,将工作是使用一个for循环,但是这将是非常密集的,因为我会从iCloud中选择所有的值,然后依次通过他们找出选择其中5,和我期待有在数据库中有很多不同的帖子,所以我只想加载那些需要的帖子.

我正在寻找这样的东西:

var limit: NSLimitDescriptor = NSLimitDescriptor(5, 10)
query.limit = limit

CKContainer.defaultContainer().publicCloudDatabase.addOperation(CKQueryOperation(query: query)
//fetch values and return them
Run Code Online (Sandbox Code Playgroud)

ios swift cloudkit ckquery

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

Int工作时Int64不起作用

我收到一个JSON,我想解析它以获得一个值.我这样做

let ddd = oneJson["restaurantId"] as! Int
print("ddd = \(ddd)")
let restaurantId = oneJson["restaurantId"] as! Int64
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在解析相同的字段.这是我的JSON

"location":"location here location","restaurantId":0
Run Code Online (Sandbox Code Playgroud)

print语句工作正常,但我得到了一个例外 oneJson["restaurantId"] as! Int64

在此输入图像描述

json ios swift

7
推荐指数
2
解决办法
585
查看次数

绘制CIImage太慢了

我正在创建一个应用程序,需要实时应用过滤器到图像.将UIImagea 转换为a CIImage,并应用滤镜都是非常快速的操作,但将创建的CIImage背面转换为a CGImageRef并显示图像需要很长时间(1/5秒,如果编辑需要真实,这实际上很多-时间).

图像大约2500 x 2500像素,这很可能是问题的一部分

目前,我正在使用

let image: CIImage //CIImage with applied filters
let eagl = EAGLContext(API: EAGLRenderingAPI.OpenGLES2)
let context = CIContext(EAGLContext: eagl, options: [kCIContextWorkingColorSpace : NSNull()])

//this line takes too long for real-time processing
let cg: CGImage = context.createCGImage(image, fromRect: image.extent)
Run Code Online (Sandbox Code Playgroud)

我已经考虑过使用了 EAGLContext.drawImage()

context.drawImage(image, inRect: destinationRect, fromRect: image.extent)
Run Code Online (Sandbox Code Playgroud)

然而,我找不到任何关于如何做到这一点的可靠文档,或者它是否会更快

是否有更快的方式来显示CIImage屏幕(在a中UIImageView,或直接在a上CALayer)?我想避免过多地降低图像质量,因为这可能对用户来说是显而易见的.

core-graphics ios ciimage swift

7
推荐指数
2
解决办法
5449
查看次数