我正在尝试在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的编译示例?

我的iOS应用程序的名称已被采用English US.
我注意到,我是能够使用,我想的名字,如果我做的默认语言English UK或English CA代替English US.
将默认语言设置为English UK或English CA,并且没有语言English US不允许该应用程序在美国可见?是否有任何其他解决方法可以用来制作它,以便我可以使用我想要的美国应用程序商店的应用程序名称?
当我尝试运行我的应用程序时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+中的错误,还是有其他方式可以信任开发人员?
在我的项目中,有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) 当一个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次反弹的方法.
我有这个代码:
- (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我的功能似乎没用,还是我失去了一些东西?它有什么作用?
在验证我的应用程序时,我收到错误消息
"广告标识符使用不当.您的应用包含广告标识符[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)

有没有办法限制在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) 我收到一个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
我正在创建一个应用程序,需要实时应用过滤器到图像.将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)?我想避免过多地降低图像质量,因为这可能对用户来说是显而易见的.
ios ×7
swift ×6
objective-c ×2
swift2 ×2
xcode ×2
alamofire ×1
ciimage ×1
ckquery ×1
cloudkit ×1
ios9 ×1
json ×1
nsurlsession ×1
sprite-kit ×1
web-services ×1
xcode7 ×1