我正在尝试在Xcode 10.0 beta(10L176w)(10L176w)中编译我的项目...我收到错误 'frame'仅适用于iOS 12.0或更高版本
这是我的代码
@IBAction func btnAddToCartAction(_ sender: AnyObject) {
let btnCart:UIButton = sender as! UIButton
let boundsCenter:CGPoint = btnCart.bounds.offsetBy(dx: sender.frame.size.width/2, dy: btnCart.frame.size.height/2).origin;
}
Run Code Online (Sandbox Code Playgroud)
在Xcode 9中编译得很好
我在这里看过WWDC18相关视频中的演示:
https://developer.apple.com/videos/play/wwdc2018/303/
但它不是从头开始.我没有看到他们使用了哪种工具以及我们需要启动它的位置.任何人都可以帮忙吗?
我目前正在开发一个在Swift中使用实时摄像头视图的项目.我使用了一些我在GitHub上找到的代码给我实时摄像机视图,它在运行Mojave的MacBook Pro上运行良好.我将所有文件存储在外部硬盘上,所以我去了iMac并开始在那里开展项目.我想我有两个不同版本的Xcode 10 beta,这可能是问题的一部分?基本上这条线在我的MacBook上工作正常,但在iMac上没有,btw正在运行macOS high Sierra 15:
guard let pixelBuffer : CVPixelBuffer = sampleBuffer.imageBuffer else { return }
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
Value of type 'CMSampleBuffer' has no member 'imageBuffer'
Run Code Online (Sandbox Code Playgroud)
但是当我在我的macbook上打开完全相同的项目时,这没有任何问题.这可能是一个Xcode版本的东西,还是因为我运行两个不同的macOS版本?
我有这段代码,它在 Xcode 9 中运行良好,但在 Xcode 10 中我收到了这个错误。将非转义值转换为 'T' 可能允许它转义
这是代码:
extension CGPath {
func forEach( body: @convention(block) (CGPathElement) -> Void) {
typealias Body = @convention(block) (CGPathElement) -> Void
let callback: @convention(c) (UnsafeMutableRawPointer, UnsafePointer<CGPathElement>) -> Void = { (info, element) in
let body = unsafeBitCast(info, to: Body.self)
body(element.pointee)
}
print(MemoryLayout.size(ofValue: body))
let unsafeBody = unsafeBitCast(body, to: UnsafeMutableRawPointer.self)
self.apply(info: unsafeBody, function: unsafeBitCast(callback, to: CGPathApplierFunction.self))
}
Run Code Online (Sandbox Code Playgroud)
我收到此 2 行代码的错误
print(MemoryLayout.size(ofValue: body))
let unsafeBody = unsafeBitCast(body, to: UnsafeMutableRawPointer.self)
Run Code Online (Sandbox Code Playgroud)
用于MemoryLayout和unsafeBitCast
我的应用程序有两个视图控制器(VC A和B)以及它们之间的自定义转换.
当在VC A上使用左向平移手势时,交互式动画过渡在模式上呈现VC B从A向右滑动(从右到左).要关闭VC B,用户可以:
UIPercentDrivenInteractiveTransition对象"驱动" .问题是在Xcode 10 Seed(build 10A254a)+ iOS 12 Simulator(X或XR或XS)上进行测试我可以很容易地进入自定义转换永远不会完成且UI处于奇怪状态的状态:
此问题从未出现在任何先前版本的Xcode和/或iOS Xcode 10/iOS12之前.
这是animateTransition我的自定义方法UIViewControllerAnimatedTransitioning
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let fromVC = transitionContext.viewController(forKey: .from), let toVC = transitionContext.viewController(forKey: .to) else {
transitionContext.completeTransition(false)
return
}
let containterView = transitionContext.containerView
containterView.insertSubview(toVC.view, …Run Code Online (Sandbox Code Playgroud) 由于无关原因,我正在使用旧学校启动图像方法而不是Launch屏幕故事板.
通常,当Apple推出新的物理外形时,他们已经添加了在图像资产目录中包含新屏幕尺寸图像的功能,这反过来又可以使您的应用以原始分辨率运行,而不是从以前支持的扩展决议.
然而,这一次似乎并非如此.这是LaunchImage资产在Xcode 10 的最终版本(即不是 GM)中的样子:
正如您所看到的,iPhone XS Max或iPhone XR没有任何插件,它们的分辨率(iPhone)和iPhone XS的分辨率都不同(更高).
我见过其他人有同样的问题,但没有任何解决方案.
我似乎无法找到任何iOS 12或Xcode 10文档,表明Apple仅支持用于启动屏幕的故事板或xibs.
更新到 Xcode 10 后,我意识到draw(_ rect: CGRect)我的应用程序中自定义 UIView(从 UIView 派生的类)的例程被调用了错误的rect. 事实上,它总是以rect底层 UIView 的完整框架被调用,而不是rect由setNeedsDisplay(_ rect: CGRect).
这是一个可以作为游乐场运行的代码片段,至少在我的设置中,它显示了上面在简约设置中描述的错误行为:
import Foundation
import UIKit
import PlaygroundSupport
class CustomView: UIView {
override func draw(_ rect: CGRect) {
print("rect = \(rect)")
}
}
let customView = CustomView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 200.0, height: 200.0)))
PlaygroundPage.current.liveView = customView
print("test")
customView.setNeedsDisplay(CGRect(origin: CGPoint.zero, size: CGSize(width: 100.0, height: 100.0)))
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
rect = (0.0, 0.0, 200.0, 200.0)
测试
rect = (0.0, 0.0, …
更新到 Xcode 10 后,我的项目出现以下错误:
第一个错误:
:-1: 多个命令产生 '/Users/maropost/Library/Developer/Xcode/DerivedData/MPPush-dorcxsyibrmjnndrycgblntogjan/Build/Products/Debug-iphoneos/MPPush.framework/Info.plist': 1) Target 'MPPush' (project 'MPPush') 具有从 '/Users/maropost/Documents/Work/iOS/Products/SDK/SwiftFromStart/MPPush/MPPush/Info.plist' 到 '/Users/maropost/Library/Developer/Xcode/DerivedData/MPPush 的复制命令-dorcxsyibrmjnndrycgblntogjan/Build/Products/Debug-iphoneos/MPPush.framework/Info.plist' 2)目标'MPPush'(项目'MPPush')具有输出'/Users/maropost/Library/Developer/Xcode/DerivedData/的进程命令MPPush-dorcxsyibrmjnndrycgblntogjan/Build/Products/Debug-iphoneos/MPPush.framework/Info.plist'
第二个错误:
无法删除,
/Users/maropost/Documents/Work/iOS/Products/SDK/SwiftFromStart/MPPush/build因为它不是由构建系统创建的,并且它不是派生数据的子文件夹。
第三个错误:
命令 PhaseScriptExecution 发出错误,但未返回指示失败的非零退出代码
已经检查过这个但不相关。
我的Xcode 9.x,我正在使用下面的脚本,效果很好:
######################
# Options
######################
REVEAL_ARCHIVE_IN_FINDER=false
FRAMEWORK_NAME="${PROJECT_NAME}"
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"
DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"
UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal"
FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"
######################
# Build Frameworks
######################
xcodebuild -project "${PROJECT_FILE_PATH}" -target "${TARGET_NAME}"
ONLY_ACTIVE_ARCH=NO -configuration "${CONFIGURATION}" -sdk iphonesimulator
BUILD_DIR="${BUILD_DIR}" OBJROOT="${OBJROOT}" BUILD_ROOT="${BUILD_ROOT}"
CONFIGURATION_BUILD_DIR="${IPHONE_SIMULATOR_BUILD_DIR}" SYMROOT="${SYMROOT}"
ARCHS="i386 x86_64" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" $ACTION 2>&1
xcodebuild -project "${PROJECT_FILE_PATH}" -target "${TARGET_NAME}"
ONLY_ACTIVE_ARCH=NO -configuration "${CONFIGURATION}" -sdk iphoneos
BUILD_DIR="${BUILD_DIR}" OBJROOT="${OBJROOT}" BUILD_ROOT="${BUILD_ROOT}"
CONFIGURATION_BUILD_DIR="${IPHONE_DEVICE_BUILD_DIR}" SYMROOT="${SYMROOT}"
ARCHS="armv7 armv7s arm64" ENABLE_BITCODE=YES OTHER_CFLAGS="-fembed-bitcode" $ACTION 2>&1
######################
# Create directory for universal
######################
rm -rf "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${UNIVERSAL_LIBRARY_DIR}"
mkdir "${FRAMEWORK}"
######################
# Copy files Framework
###################### …Run Code Online (Sandbox Code Playgroud) 我已经为我的项目创建了一个全新的核心数据模型,并且我想为其创建一些NSManagedObject子类。生成子类后,XCode会引发一些错误,这些错误引用了/DerivedData文件夹的路径。请参阅下面的步骤和错误图片:
我已经尝试过清理建筑,清除DerivedData文件夹,所有这些事情。我也尝试过手动创建生成的文件,但仍然遇到相同的错误。有人设法解决这个问题吗?