我DAE从这里下载了一个Collada文件,我最近打开Xcode beta并将其转换为SCN文件.
我使用此方法加载场景对象(其中modelName= model,fileExtension= scn):
private func loadModel() {
guard let virtualObjectScene = SCNScene(named: "\(modelName).\(fileExtension)", inDirectory: "art.scnassets/\(modelName)") else {
return
}
let wrapperNode = SCNNode()
for child in virtualObjectScene.rootNode.childNodes {
wrapperNode.addChildNode(child)
}
self.addChildNode(wrapperNode)
}
Run Code Online (Sandbox Code Playgroud)
但是,没有任何显示!当我加载dae文件时(通过改变fileExtension= dae),恐龙只显示出来,但恐龙闪烁的确非常奇怪.
我不明白为什么这不是因为如果苹果公司已经从提供的转换工作dae,以scn在Xcode我觉得这应该是很容易使用生成的scn文件.
任何帮助,将不胜感激!
Dinosaur.swift
class Dinosaur: VirtualObject {
override init() {
super.init(modelName: "model", fileExtension: "scn", title: "Dinosaur") …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用新的 Apple Vision API 从图像中检测条形码并返回其详细信息。我已成功检测到二维码并使用CIDetector. 但是我不能为一维条形码做这项工作。这是一个示例结果:
import UIKit
import Vision
class BarcodeDetector {
func recognizeBarcode(for source: UIImage,
complete: @escaping (UIImage) -> Void) {
var resultImage = source
let detectBarcodeRequest = VNDetectBarcodesRequest { (request, error) in
if error == nil {
if let results = request.results as? [VNBarcodeObservation] {
print("Number of Barcodes found: \(results.count)")
if results.count == 0 { print("\r") }
var barcodeBoundingRects = [CGRect]()
for barcode in results {
barcodeBoundingRects.append(barcode.boundingBox)
let barcodeType = String(barcode.symbology.rawValue)?.replacingOccurrences(of: "VNBarcodeSymbology", with: "")
print("-Barcode …Run Code Online (Sandbox Code Playgroud) 我无法将应用程序的图标更改为iOS 11中的备用图标(Xcode 9,beta 3).
但是,它在iOS 10.3中运行良好(使用以下代码):
if #available(iOS 10.3, *) {
guard let iconName = MySingletonClass.sharedInstance.iconName() else { return }
delay(0.01) {
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Success!")
}
})
}
} else {
// Fallback on earlier versions
}
Run Code Online (Sandbox Code Playgroud)
我的plist设置如下:
我发现它很奇怪,因为我在iOS 11中使用了其他使用备用应用程序图标的应用程序.在iOS 11中是否存在已知错误?
注意:如果您想知道我为什么要使用延迟,请参阅此帖子
当我尝试设置虚拟对象的simdPosition时,我在使用iOS 11 ARKit(Scenekit - Xcode 9 beta)时出现此错误.我需要知道是否可以在swift 中将SCNMatrix4转换为matrix_float4x4.如果是这样,如何转换它.
似乎Xcode 9 beta不喜欢.xib文件的文件名中的"~ipad".选择新的构建系统时(对于项目,即使用旧构建系统成功编译),它会出错:
无法构建节点:'/ Users/dev/Library /Developer/Xcode/DelivedData/proj-aiatvieseyfwjkfqncikqcohpdsn/Build/Products /Debug-iphoneos/proj.app/Controller~ipad.nib'(节点由多个命令生成;例如'adf8a93da84709e14beaf35ec6d6d21c02c34dc4669b6bd1e18a027ff75b53b5:CompileXIB /Users/dev/git/proj/Resources/Controllers/Controller.xib' 和 'adf8a93da84709e14beaf35ec6d6d21c02c34dc4669b6bd1e18a027ff75b53b5:CompileXIB /Users/dev/git/proj/Resources/Controllers/Controller~ipad.xib')
我应该重命名还是有另一种解决方案?
如何在xcode-9上以编程方式工作CoreNFC
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
//What I need to do here
}
func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
//What I need to do here
}
override func viewDidLoad() {
super.viewDidLoad()
let sessionReader = NFCNDEFReaderSession.init(delegate: self, queue: nil, invalidateAfterFirstRead: true)
let nfcSession = NFCReaderSession.self
let nfcTag = NFCTagCommandConfiguration.init()
let tagType = NFCTagType(rawValue: 0)
sessionReader.begin()
}
Run Code Online (Sandbox Code Playgroud)
我想知道读取一些NFC标签需要做些什么.
在Xcode 9 Beta中,我创建了一个新的Playground (File - > New - > Playground).现在,当我添加一个新的Playground页面(文件 - >新建 - >游乐场页面)时,它不会被添加/显示.这是一个错误吗?
在我们的项目中,我们指定
hidesNavigationBarDuringPresentation = false
Run Code Online (Sandbox Code Playgroud)
在某人UIViewController的身上UISearchController。searchController具有一系列范围标题。到目前为止,它在iOS 10上都可以正常运行,但是在iOS 11 beta中,似乎hidesNavigationBarDuringPresentation的错误设置被忽略,使显示混乱。为确保不是我项目中的其他因素,我创建了一个仅有一个项目的准系统测试项目UITableViewController,并UISearchController使用另一个simple 进行了初始化UITableViewController。以下代码位于viewDidLoad()主视图控制器上的方法中:
self.title = "Search Bar Scope Test"
let searchViewController = SearchViewController(style: .plain)
searchController = UISearchController(searchResultsController: searchViewController)
searchController!.searchBar.sizeToFit()
tableView.tableHeaderView = searchController!.searchBar
searchController?.hidesNavigationBarDuringPresentation = false
searchController?.searchBar.scopeButtonTitles = ["scope 1", "scope 2", "scope 3", "scope 4", "scope 5"]
Run Code Online (Sandbox Code Playgroud)
当最后一行分配scopeButtonTitles不存在时,导航栏不会隐藏,搜索栏仍保持其原始位置。但是,在存在该行的情况下,iPhone和iPad上的都NavigationBar变为隐藏状态,searchBar加号和范围按钮在纵向模式下都向上移动,而在横向模式下保持不变(即使范围按钮很多并且不能一起使用)线)。
有人遇到过吗?这是iOS 11中的错误或预期行为(虽然不是我们的预期行为),并且有任何解决方法吗?
谢谢!
目前,我正在使用安装了Xcode 8的macOS Sierra。我刚刚将设备更新为iOS 11,这是我的主要开发设备。由于Xcode 8没有iOS 11开发磁盘映像,因此无法构建正在使用的应用程序。有什么方法可以获取图像(无需安装Xcode 9),或者我必须回到iOS 10才能构建设备?
iOS部署目标:iOS 9.3,基础SDK:最新iOS(iOS 11.0),Xcode 9 Beta 4,Swift 4
以下代码在Swift 3,Xcode 8中构建和运行:
let kern = (CTRunGetAttributes(run) as? [String : Any])?
[NSKernAttributeName] as? CGFloat ?? 0
Run Code Online (Sandbox Code Playgroud)
但是,Swift 4迁移器将其转换为:
let kern = (CTRunGetAttributes(run) as? [String : Any])?
[NSAttributedStringKey.kern] as? CGFloat ?? 0
Run Code Online (Sandbox Code Playgroud)
Xcode 9现在抱怨:
Cannot subscript a value of type '[String : Any]' with an index of type 'NSAttributedStringKey'
Run Code Online (Sandbox Code Playgroud)
根据检查员的说法,' NSAttributedStringKey'仅适用于iOS 11.(请记住,我的目标是iOS 9).
如果我将' NSAttributedStringKey.kern' 替换为' NSKernAttributeName',则错误仍然存在.
按住命令' NSKernAttributeName'告诉我它的可用性是iOS 6.但是,检查员还声称它的类型是' NSAttributedStringKey',这仅在iOS 11中可用.我不知道这是否仅仅是API演示的假象,或者是一种东西,或者我缺少的东西.
问题:如何使用NSKernAttributeName(或其现代化版本)向后兼容iOS 9和Swift 4?
感谢您的任何帮助.
xcode9-beta ×10
ios11 ×6
ios ×5
xcode ×5
swift ×3
arkit ×2
scenekit ×2
swift4 ×2
apple-vision ×1
macos ×1
xcode9 ×1
xcode9beta6 ×1