小编yaa*_*ali的帖子

在参数传递时编译Swift 4中的错误

我在Xcode 9 Beta 3中使用了第三方库.我在完成调用中收到以下错误,我无法解决此错误:

DispatchQueue.main.asyncAfter(deadline: .now() + delay) { 
    self.animationView?.alpha = 0
    self.containerView.alpha  = 1
    completion?()    // -> Error: Missing argument parameter #1 in call.   
}
Run Code Online (Sandbox Code Playgroud)

并在完成功能中获得以下警告:

func openAnimation(_ completion: ((Void) -> Void)?) {    
    // -> Warning: When calling this function in Swift 4 or later, you must pass a '()' tuple; did you mean for the input type to be '()'?
}    
Run Code Online (Sandbox Code Playgroud)

swift swift4 ios11 xcode9-beta

11
推荐指数
1
解决办法
3826
查看次数

如何在iOS 11 ARKit-Scenekit中为SCNNode创建边框以指示其选择?

如何绘制边框以突出显示SCNNode并向用户指示该节点已被选中?在我的项目中,用户可以放置多个虚拟对象,用户可以随时选择任何对象.选择后,我应该向用户显示高亮显示的3D对象.有没有办法直接实现这个或在SCNNode上绘制边框?

scenekit ios11 arkit xcode9beta6

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

在Xcode 9 beta中的场景编辑器中定位对象

我是SceneKit的新手,无法掌握Xcode场景编辑器.我正在对最近推出的iOS ARKit进行一些研究.我用SceneKit模板创建了一个示例项目.它带有默认的ship.scn.

我删除了这个ship.scn并创建了一个新的SCN,将示例.DAE模型拖放到此SCN中.我可以使用所有纹理清楚地查看放在.SCN文件中的对象.

但是当我在设备中运行它时,对象出现在相机顶部并放大并且没有正确定位在相机框架中.我不得不放弃为对象的位置x: 0,y: -60,z: -60在Xcode场景编辑器,使其在相机取景框中央可用.但是,如果我这样做,对象将永远是-60相机的度数,我将无法通过触摸手势正确移动/调整大小.

任何人请帮助我如何在相机框架的中心提供对象,使对象也支持旋转/调整大小/移动等.

我创建了如下的场景并将其添加到场景视图中:

let scene = SCNScene(named: "art.scnassets/Lowpoly_Notebook_2.scn")!
Run Code Online (Sandbox Code Playgroud)

我使用Apple的链接作为移动/调整对象大小的参考.

xcode augmented-reality scenekit ios11 arkit

6
推荐指数
1
解决办法
1570
查看次数

如何在现有的基于故事板的项目中设置@EnvironmentObject?

我有一个使用StoryboardUIKit构建的 iOS 项目。现在我想使用SwiftUI开发新屏幕。我向现有Storyboard添加了一个托管视图控制器,并用它来显示我新创建的SwiftUI视图。

但我不知道如何创建一个可以在整个应用程序中的任何地方使用的@EnvironmenetObject 。我应该能够在任何基于 UIKit 的 ViewController 以及SwiftUI视图中访问/设置它。

这可能吗?如果是的话该怎么办呢?在纯SwiftUI应用程序中,我们设置环境对象如下,

@main
struct myApp: App {
    @StateObject var item = Item()

    var body: some Scene {
        WindowGroup {
            MainView()
                .environmentObject(item)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但就我而言,没有这样的函数,因为它是一个包含AppDelegateSceneDelegate的现有 iOS 项目。初始视图控制器在 Storyboard 中标记。如何设置它并在应用程序中的任何位置访问该对象?

uikit ios swift swiftui

6
推荐指数
1
解决办法
4530
查看次数

无法在 info.plist 中添加“隐私 - 位置始终和使用时使用说明” - Xcode 9 Beta

我在尝试向用户请求 Xcode 9 Beta 中的位置许可时收到以下错误。我尝试在 info.plist 中添加“隐私 - 使用时的位置使用说明”“隐私 - 位置使用说明”说明,但仍然遇到相同的错误。

该应用程序试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含 NSLocationAlwaysAndWhenInUseUsageDescription 和 NSLocationWhenInUseUsageDescription 键,以及向用户解释应用程序如何使用此数据的字符串值

当我尝试添加“隐私 - 位置始终和使用时使用说明”时,它会自动重命名为info.plist 中的“隐私 - 位置使用说明”

xcode plist core-location ios swift

5
推荐指数
1
解决办法
2万
查看次数

如何在不冻结ARSession的情况下将ARSCNView放入Tabview控制器?

我正在尝试在我的应用程序(Tabbed应用程序)中实现iOS 11 beta的ARKit.但正如在ARKit会话暂停和不恢复线程中所述,每当我将选项卡更改为另一个视图控制器并返回时,ARSession就会冻结而不会恢复.

是否可以在选项卡式应用程序中实现ARSCNView,这样如果你回来我可以恢复ARSession?如果是这样怎么办?

ios ios11 xcode9-beta arkit

5
推荐指数
1
解决办法
705
查看次数

无法将'SCNMatrix4'类型的值转换为预期的参数类型'matrix_float4x4'(又名'simd_float4x4')

当我尝试设置虚拟对象的simdPosition时,我在使用iOS 11 ARKit(Scenekit - Xcode 9 beta)时出现此错误.我需要知道是否可以在swift 中将SCNMatrix4转换为matrix_float4x4.如果是这样,如何转换它.

scenekit swift ios11 xcode9-beta arkit

5
推荐指数
1
解决办法
3690
查看次数

ARKit –使用CALayer无法正确地在SCNNode中加载GIF图像

我正在开发一个3D模型的AR应用程序。

点击子节点后,我将通过使用CALayer创建动画并将其加载到diffuse.contents中(通过遵循此线程)来显示GIF图像将CALayer的内容设置为动画GIF?

let animation : CAKeyframeAnimation = createGIFAnimation(url: gifImageURL!)!
let layer = CALayer()
layer.bounds = CGRect(x: 0, y: 0, width:600, height:200)
layer.add(animation, forKey: "contents")

let newMaterial = SCNMaterial()
newMaterial.isDoubleSided = true
newMaterial.diffuse.contents = layer
let plane = SCNPlane(width: 5, height: 5)
plane.materials = [newMaterial]
let node = SCNNode(geometry: plane)
self.sceneView.scene.rootNode.addChildNode(node)
Run Code Online (Sandbox Code Playgroud)

我能够在SCNNode中渲染gif图像,但它只显示其中的四分之一(GIF的最右下半部分仅可见)。我尝试了以下步骤来纠正此问题,但仍然徒劳。

  1. 更改平面的宽度/高度
  2. 更改CALayer的界限
  3. 尝试使用不同尺寸的gif图像

任何人都可以帮助我如何使用CALayer在SCNPlane中渲染完整的gif图像。

augmented-reality scenekit swift ios11 arkit

4
推荐指数
1
解决办法
1541
查看次数

Core ML iOS 11无法正确识别图像

我尝试了最近在iOS中引入的Core ML来识别和分类图像.问题是,它没有为发送的图像提供正确的结果.

如果我发送一个地球图像(Globe)它会给我作为泡泡的课程.以下是我使用的代码,

            let model = Resnet50()

            let pixelBuffer: CVPixelBuffer =  (modelImg.pixelBuffer())!

            if let prediction = try? model.prediction(image: pixelBuffer) {
                print( "Found it!! It is a/an \(prediction.classLabel)")
            }
Run Code Online (Sandbox Code Playgroud)

是否可以在现有Core ML模型的基础上使用自定义用例训练模型?(例如Resnet50)

image-recognition swift ios11 coreml

3
推荐指数
1
解决办法
731
查看次数

无法安装Apple Watch应用程序

我使用健康套件为 Apple Watch Model MJ3T2B/A创建了一个应用程序。它带有 watch OS 2.0 版本。我使用 Xcode 版本 7.3.1 创建该应用程序,并使用 diawi 将其安装在我的 iPhone 中。我无法直接运行它,因为它说手表应用程序的部署版本是 2.2,而我正在使用的是 2.0。

当我在 Apple Watch 中启用“显示应用程序”时,它会在一段时间后在 iPhone(iOS 9.3.2)手表应用程序中自动禁用。我需要使用不同的 xcode 版本来创建我的应用程序吗?我的 iPhone 应用程序中也没有收到任何操作系统更新。它说手表操作系统2.0和软件是最新的。

xcode ios apple-watch

2
推荐指数
1
解决办法
2413
查看次数

是否可以使用CoreML和ARKit获得World对象的“ SCNVector3”位置?

我正在研究一种基于AR的解决方案,其中使用SceneKit和ARKit渲染了一些3D模型。我还集成了CoreML以识别对象并在场景中渲染相应的3D对象。

但是现在,我一检测到对象就将其呈现在屏幕中央(仅适用于我拥有的对象列表)。是否可以获取现实世界对象的位置,以便可以在对象上方显示一些叠加层?

也就是说,如果我扫描了水瓶,则应该能够找到水瓶的位置。它可能在水瓶中的任何地方,但不应放在水瓶外面。使用SceneKit是否可能?

augmented-reality scenekit ios11 arkit coreml

0
推荐指数
1
解决办法
574
查看次数