标签: xcode8-beta6

Xcode 8 beta 6:main.swift无法编译

我们有一个自定义的UIApplication对象,所以我们的main.swift是

import Foundation
import UIKit

UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(MobileUIApplication), NSStringFromClass(AppDelegate))
Run Code Online (Sandbox Code Playgroud)

这在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))
Run Code Online (Sandbox Code Playgroud)

在Xcode 8 beta 6上,我们使用未解析的标识符'Process'

我们需要在Xcode 8 beta 6/Swift 3中做些什么才能定义UIApplicationMain?

xcode program-entry-point swift swift3 xcode8-beta6

23
推荐指数
2
解决办法
6755
查看次数

XCode 8评论已破坏

在XCode 8 Beta 5和6上无法使用注释输出功能.似乎它在上下文菜单中被禁用,快捷方式不起作用.

我已经通过bugreport.apple.com向Apple提交了此消息,并得到了已经报告的回复.我在Mac OS 10.11.6上

有谁知道如何解决这一问题?

xcode8 xcode8-beta6

16
推荐指数
2
解决办法
7392
查看次数

无法识别的选择器UIDeviceRGBColor countByEnumeratingWithState:objects:count:

我知道这是一种欺骗,但我还没有足够的声誉来评论原帖,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子).主持人,随意将其移动到正确的位置.

当使用最新的XCode 8 beta 6(iOS 10 SDK)编译我的代码时,我得到一个异常"由于未捕获的异常终止应用程序'NSInvalidArgumentException',原因:' - [UIDeviceRGBColor countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例0x600000071340'"

这在调用期间发生:

    auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
Run Code Online (Sandbox Code Playgroud)

我已经通过将我的项目削减到最低限度来解决问题,这将编译并仍然表现出问题.您可以在这里下载:

示例项目

请注意,我删除了大量代码,几乎所有类都消失了,这导致从xib引用的不存在的类中出现了很多警告(而不是错误).但这没关系,代码仍然可以编译并运行iOS 9 SDK.然而,在使用iOS 10 sdk进行编译后,它会在模拟器和运行iOS 9的设备上崩溃.

您可以通过在文件"HackForUnrecognizedSelectorInIOS10.m"中将"#if 0"更改为"#if 1"来解决此问题.这会为UIColor添加一个定义缺少选择器的类别.但显然你无法将其添加到运输代码中,这只是一个暂时的权宜之计,可以继续开发.

我提交了一份错误报告(28153870).但是,如果有任何人有关于如何避免这个问题没有丑陋的黑客的任何更多的信息,欢迎任何信息.

谢谢

米歇尔科尔曼

xcode objective-c ios ios10 xcode8-beta6

14
推荐指数
1
解决办法
5642
查看次数

UIImagePickerController的cameraViewTransform忽略了iOS 10 beta上的"缩放"和"翻译"

我一直在使用下面的代码来扩展我的UIImagePickerController的实时预览以填充整个屏幕.到目前为止,这完美地运作 在几天之前,我在iPhone 5上安装了iOS 10 beta 7,它不再扩展.我可以在UIImagePickerController的视图底部看到黑色补丁.似乎cameraViewTransform是在忽略CGAffineTransformMakeScaleCGAffineTransformMakeTranslation调用.

这就是我启动相机控制器的方式.我已将"allowsEditing"和"showsCameraControls"都设置为"NO",以便提供我自己的自定义叠加视图.

objImagePickerController =[[UIImagePickerController alloc] init];

objImagePickerController.delegate = self;
objImagePickerController.sourceType =UIImagePickerControllerSourceTypeCamera;
objImagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
objImagePickerController.allowsEditing = NO;
objImagePickerController.showsCameraControls= NO;
Run Code Online (Sandbox Code Playgroud)

这是我用来缩放相机实时预览的内容.

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);
Run Code Online (Sandbox Code Playgroud)

这就是我将摄像机视图添加为子视图而不是传统的模态演示方法的方法,以满足我自己的要求.

 [[[UIApplication sharedApplication] keyWindow]addSubview:objImagePickerController.view];
Run Code Online (Sandbox Code Playgroud)

来自iOS 5 beta 8上运行的iPhone 5s的屏幕截图

在此输入图像描述

来自iOS …

objective-c uiimagepickercontroller ios ios10 xcode8-beta6

11
推荐指数
3
解决办法
4015
查看次数

如何在Swift 3中使用新的优先级组声明exponent/power运算符?

对于Xcode 8 beta 6,Swift 3已经发生了变化,现在我无法像以前那样申报操作员的电源:

infix operator ^^ { }
public func ^^ (radix: Double, power: Double) -> Double {
    return pow((radix), (power))
}
Run Code Online (Sandbox Code Playgroud)

我已经读过一些关于它的内容,并且在Xcode 8 beta 6中引入了一个新的变化

从这里我猜我必须声明一个优先级组并将其用于我的运算符,如下所示:

precedencegroup ExponentiativePrecedence {}

infix operator ^^: ExponentiativePrecedence
public func ^^ (radix: Double, power: Double) -> Double {
    return pow((radix), (power))
}
Run Code Online (Sandbox Code Playgroud)

我是否朝着正确的方向努力使这项工作成功?我应该把什么放在优先组的{}里面?

我的最终目标是能够使用简单的操作员快速进行动力操作,例如:

10 ^^ -12
10 ^^ -24
Run Code Online (Sandbox Code Playgroud)

operator-precedence swift swift3 xcode8-beta6

9
推荐指数
1
解决办法
3557
查看次数

xcode8 beta'Error'对于此上下文中的类型查找是不明确的

根据这篇文章,我需要指定模块来查找对象类型,但是下面的函数是从apple api调用的,我是否需要等到Xcode8真正发布?还是我想念什么?

AppDelegate.swift中的函数

在此输入图像描述

导入部分 在此输入图像描述

ios swift xcode8-beta6

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

withMemoryRebound与苹果Swift 3 beta 6一起使用

我有以下问题.我想转换我的旧函数(直到Swift 3 beta 5):

func binarytotype <T> (_ value: [UInt8], _: T.Type) -> T
{
    return value.withUnsafeBufferPointer
    {
        return UnsafePointer<T>($0.baseAddress!).pointee
    }
}
Run Code Online (Sandbox Code Playgroud)

转到Swift 3 beta 6语法.此函数将UInt8的数组转换为另一种类型,例如:

let b: [UInt8] = [1,2,3,4,5,6,7,8]
var number: Double = binarytotype(b, Double.self)
Run Code Online (Sandbox Code Playgroud)

但是现在这在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))
    }
}
Run Code Online (Sandbox Code Playgroud)

这也不再适用.同样的问题.我的一些项目都需要这两个项目.这个反向函数被称为:

var binary: [UInt8] = typetobinary(number)
Run Code Online (Sandbox Code Playgroud)

pointers type-conversion swift swift3 xcode8-beta6

8
推荐指数
1
解决办法
2731
查看次数

方法不会覆盖其超类swift 3.0错误中的任何方法

我将我的代码从swift 2.2转换为swift 3.0,我得到的方法不会覆盖其超类错误中的任何方法.这是我的代码:

override class func layerClass() -> AnyClass {
        return CAShapeLayer.self
    }
Run Code Online (Sandbox Code Playgroud)

删除覆盖会导致以下错误:使用Objective-C选择器'layerClass'的方法'layerClass()'与来自超类'UIView'的'layerClass'的getter冲突,具有相同的Objective-C选择器

ios swift swift3 xcode8-beta6

8
推荐指数
1
解决办法
3105
查看次数

UIApplicationLaunchOptionsShortcutItemKey在Swift 3中没有?

最近在Xcode 8 beta 6(8S201h)中,这已经成为一个问题.

 UIApplicationLaunchOptionsShortcutItemKey
Run Code Online (Sandbox Code Playgroud)

这是错误:

在此输入图像描述

还有谁有相同的问题吗?

var performShortcutDelegate = true
if let shortcutItem = launchOptions[UIApplicationLaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem {
    print("ok")
    self.shortcutItem = shortcutItem
    performShortcutDelegate = false
}
return performShortcutDelegate
Run Code Online (Sandbox Code Playgroud)

swift 3dtouch swift3 xcode8 xcode8-beta6

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

Xcode 8 beta 6 AnyObject Swift 3更改

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
    }
Run Code Online (Sandbox Code Playgroud)

https://www.dropbox.com/s/ln0vx3b9rbywv83/Screen%20Shot%202016-08-18%20at%2014.32.23.png?dl=0

xcode swift3 xcode8-beta6

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