我们有一个自定义的UIApplication对象,所以我们的main.swift是
import Foundation
import UIKit
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(MobileUIApplication), NSStringFromClass(AppDelegate))
这在Xcode 8 beta 5中不起作用,所以我们使用了这个
//TODO Swift 3 workaround? https://forums.developer.apple.com/thread/46405
UIApplicationMain( Process.argc, UnsafeMutablePointer<UnsafeMutablePointer<CChar>>(Process.unsafeArgv), nil, NSStringFromClass(AppDelegate.self))
在Xcode 8 beta 6上,我们使用未解析的标识符'Process'
我们需要在Xcode 8 beta 6/Swift 3中做些什么才能定义UIApplicationMain?
在XCode 8 Beta 5和6上无法使用注释输出功能.似乎它在上下文菜单中被禁用,快捷方式不起作用.
我已经通过bugreport.apple.com向Apple提交了此消息,并得到了已经报告的回复.我在Mac OS 10.11.6上
有谁知道如何解决这一问题?
我知道这是一种欺骗,但我还没有足够的声誉来评论原帖,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子).主持人,随意将其移动到正确的位置.
当使用最新的XCode 8 beta 6(iOS 10 SDK)编译我的代码时,我得到一个异常"由于未捕获的异常终止应用程序'NSInvalidArgumentException',原因:' - [UIDeviceRGBColor countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例0x600000071340'"
这在调用期间发生:
    auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
我已经通过将我的项目削减到最低限度来解决问题,这将编译并仍然表现出问题.您可以在这里下载:
请注意,我删除了大量代码,几乎所有类都消失了,这导致从xib引用的不存在的类中出现了很多警告(而不是错误).但这没关系,代码仍然可以编译并运行iOS 9 SDK.然而,在使用iOS 10 sdk进行编译后,它会在模拟器和运行iOS 9的设备上崩溃.
您可以通过在文件"HackForUnrecognizedSelectorInIOS10.m"中将"#if 0"更改为"#if 1"来解决此问题.这会为UIColor添加一个定义缺少选择器的类别.但显然你无法将其添加到运输代码中,这只是一个暂时的权宜之计,可以继续开发.
我提交了一份错误报告(28153870).但是,如果有任何人有关于如何避免这个问题没有丑陋的黑客的任何更多的信息,欢迎任何信息.
谢谢
米歇尔科尔曼
我一直在使用下面的代码来扩展我的UIImagePickerController的实时预览以填充整个屏幕.到目前为止,这完美地运作 在几天之前,我在iPhone 5上安装了iOS 10 beta 7,它不再扩展.我可以在UIImagePickerController的视图底部看到黑色补丁.似乎cameraViewTransform是在忽略CGAffineTransformMakeScale和CGAffineTransformMakeTranslation调用.
这就是我启动相机控制器的方式.我已将"allowsEditing"和"showsCameraControls"都设置为"NO",以便提供我自己的自定义叠加视图.
objImagePickerController =[[UIImagePickerController alloc] init];
objImagePickerController.delegate = self;
objImagePickerController.sourceType =UIImagePickerControllerSourceTypeCamera;
objImagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
objImagePickerController.allowsEditing = NO;
objImagePickerController.showsCameraControls= NO;
这是我用来缩放相机实时预览的内容.
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
float screenHeight= MAX(screenSize.height, screenSize.width);
float screenWidth= MIN(screenSize.height, screenSize.width);
float cameraAspectRatio = 4.0 / 3.0;
float imageWidth = floorf(screenWidth * cameraAspectRatio);
float scale = ceilf((screenHeight / imageWidth) * 10.0) / 10.0;
objImagePickerController.cameraViewTransform= CGAffineTransformMakeScale(scale, scale);
这就是我将摄像机视图添加为子视图而不是传统的模态演示方法的方法,以满足我自己的要求.
 [[[UIApplication sharedApplication] keyWindow]addSubview:objImagePickerController.view];
来自iOS 5 beta 8上运行的iPhone 5s的屏幕截图
来自iOS …
对于Xcode 8 beta 6,Swift 3已经发生了变化,现在我无法像以前那样申报操作员的电源:
infix operator ^^ { }
public func ^^ (radix: Double, power: Double) -> Double {
    return pow((radix), (power))
}
我已经读过一些关于它的内容,并且在Xcode 8 beta 6中引入了一个新的变化
从这里我猜我必须声明一个优先级组并将其用于我的运算符,如下所示:
precedencegroup ExponentiativePrecedence {}
infix operator ^^: ExponentiativePrecedence
public func ^^ (radix: Double, power: Double) -> Double {
    return pow((radix), (power))
}
我是否朝着正确的方向努力使这项工作成功?我应该把什么放在优先组的{}里面?
我的最终目标是能够使用简单的操作员快速进行动力操作,例如:
10 ^^ -12
10 ^^ -24
我有以下问题.我想转换我的旧函数(直到Swift 3 beta 5):
func binarytotype <T> (_ value: [UInt8], _: T.Type) -> T
{
    return value.withUnsafeBufferPointer
    {
        return UnsafePointer<T>($0.baseAddress!).pointee
    }
}
转到Swift 3 beta 6语法.此函数将UInt8的数组转换为另一种类型,例如:
let b: [UInt8] = [1,2,3,4,5,6,7,8]
var number: Double = binarytotype(b, Double.self)
但是现在这在beta 6中不再起作用了,我必须使用withMemoryRebound,但我真的不知道,如何让它运行.有谁能够帮我?
相反的功能是:
func typetobinary <T> (_ value: T) -> [UInt8]
{
    var v: T = value
    return withUnsafePointer(to: &v)
    {
        Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>($0), count: MemoryLayout<T>.size))
    }
}
这也不再适用.同样的问题.我的一些项目都需要这两个项目.这个反向函数被称为:
var binary: [UInt8] = typetobinary(number)
我将我的代码从swift 2.2转换为swift 3.0,我得到的方法不会覆盖其超类错误中的任何方法.这是我的代码:
override class func layerClass() -> AnyClass {
        return CAShapeLayer.self
    }
删除覆盖会导致以下错误:使用Objective-C选择器'layerClass'的方法'layerClass()'与来自超类'UIView'的'layerClass'的getter冲突,具有相同的Objective-C选择器
最近在Xcode 8 beta 6(8S201h)中,这已经成为一个问题.
 UIApplicationLaunchOptionsShortcutItemKey
这是错误:
还有谁有相同的问题吗?
var performShortcutDelegate = true
if let shortcutItem = launchOptions[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem {
    print("ok")
    self.shortcutItem = shortcutItem
    performShortcutDelegate = false
}
return performShortcutDelegate
Xcode beta 6改变了一些Swift语言
由于'id'现在导入为'Any'而不是'AnyObject',因此您可能会看到先前在'AnyObject'上执行动态查找的错误.
我已经尝试将修复程序在执行动态查找之前显式转换为AnyObject,或者强制转换为特定的对象类型
但我不确定我是否正确地做到了 - 有人可以帮助请在这里是来自Beta 5的原始工作代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! SpecialCell
        let maindata = values[(indexPath as NSIndexPath).row]
        cell.name.text = maindata["name"] as? String
        cell.id.text = maindata["id"] as? String
        //team_id.text = maindata["team_id"] as? String
        return cell
    }
https://www.dropbox.com/s/ln0vx3b9rbywv83/Screen%20Shot%202016-08-18%20at%2014.32.23.png?dl=0
xcode8-beta6 ×10
swift ×6
swift3 ×6
ios ×4
xcode ×3
ios10 ×2
objective-c ×2
xcode8 ×2
3dtouch ×1
pointers ×1