在Swift项目中正确使用Obj-C库

帖木儿·艾库特(YurdiRIM)

编辑:我认为这可能是关于从Objective-C库加载.xib并将其显示在swift的视图控制器上


我一直在尝试在快速的应用程序中使用https://github.com/promet/PRAugmentedReality库。

它与obj-c完美配合,例如: 在此处输入图片说明

但是当我将其桥接到快速项目时,它开始像这样: 在此处输入图片说明

在下面,您可以看到将这个库集成到我的swift项目中时的步骤,我的swift项目代码以及Objective-C和Swift项目的下载链接。另外,这里还有用于PR Augmented Reality Framework的youtube视频:

链接1:入门-> https://www.youtube.com/watch?v=fdN0XAoZXOY

链接2:内部演练-> https://www.youtube.com/watch?v=Xmx-0OnzTPY

Swift项目步骤:

  1. 使用名为demoAR的Xcode版本7.2.1(7C1002)创建单视图应用程序
  2. 我从Targets-> demoAR-> Build Phases-> Link Binary with Libraries中添加Foundation.framework,CoreGraphics.framework和UIKit.framework
  3. 然后,选择“文件”->“新建目标”->“ Cocoa Touch框架”,然后单击“下一步”。
  4. 创建了一个具有以下属性的目标:产品名称:PRAR,语言:Objective-C和组织标识符:com.timur.PRAR,然后单击“完成” 在此处输入图片说明
  5. 我在PRAR下创建了另一个组,并将其命名为“ Classes”,然后从框架的Classes文件夹复制了文件并将其添加到PRAR / Classes文件夹。
  6. 我将框架的目标成员资格的每个.h文件都更改为“公共”

项目清单

  1. 然后我像这样将头文件导入到我的桥接文件(PRAR.h)中

    #import <PRAR/ARSettings.h>
    #import <PRAR/PRARManager.h>
    #import <PRAR/ARController.h>
    #import <PRAR/ARObject.h>
    #import <PRAR/ARRadar.h>
    #import <PRAR/LocationMath.h>
    
  2. 在我的swift项目中运行此框架的其余工作仍保留在ViewController.swift文件中,例如:

    import UIKit
    import PRAR
    var prARManager = PRARManager()
    let x: Int32 = AR_VIEW_TAG
    let y = Int(x)
    class ViewController: UIViewController, PRARManagerDelegate{
    
        func alert(title: String, withDetails details: String) {
            print("alert function")
            let alert: UIAlertView = UIAlertView(title: title, message: details, delegate: nil, cancelButtonTitle: "Ok", otherButtonTitles: "")
            alert.show()
        }
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            print("1")
            // AŞAĞIDAKİ SATIRDA BİR SORUN VAR!!!
            prARManager = PRARManager.init(size: self.view.frame.size, delegate: self, showRadar: true)
            print("2")
        }
    
        override func viewDidAppear(animated: Bool) {
            print("3")
            let locationCoordinates = CLLocationCoordinate2D(latitude: 41.085468, longitude: 29.044033)
            print("4")
            prARManager.startARWithData(self.getDummyData() as [AnyObject], forLocation: locationCoordinates)
            print("5")
        }
    
        func getDummyData() -> NSArray {
            print("6")
            let dummyData: [AnyObject] = [["id": 0, "lat": 40.9780919, "lon": 27.511674, "title": "Tekirdağ"], ["id": 1, "lat": 40.8025157, "lon": 29.4397941, "title": "Gebze"]]
            print("7")
            return dummyData;
        }
    
        func prarDidSetupAR(arView: UIView, withCameraLayer cameraLayer: AVCaptureVideoPreviewLayer, andRadarView radar: UIView) {
            print("8")
            NSLog("Finished displaying ARObjects")
            print("9")
            self.view.layer.addSublayer(cameraLayer)
            print("10")
            self.view!.addSubview(arView)
            print("11")
            self.view.bringSubviewToFront(self.view.viewWithTag(y)!)
            //self.view.bringSubviewToFront(self.view!.viewWithTag(AR_VIEW_TAG));
            //self.view!.bringSubviewToFront(self.view!.viewWithTag( 042313 )!)
            //print("12")
            self.view.addSubview(radar)
            //print("13")
        }
    
        func prarUpdateFrame(arViewFrame: CGRect) {
            print("14")
            self.view.viewWithTag(y)?.frame = arViewFrame
            print("hello")
            //self.view.viewWithTag(AR_VIEW_TAG)!.frame = arViewFrame
            //self.view!.viewWithTag(042313)!.frame = arViewFrame
            print("15")
        }
    
        func prarGotProblem(problemTitle: String!, withDetails problemDetails: String!) {
            print("16")
            self.alert(problemTitle, withDetails: problemDetails)
            print("17")
        }
    }
    

您可以在下面下载Objective-C和Swift项目。我只希望Swift项目能够作为Objective-C项目运行。我怎样才能做到这一点?我一直在遍历所有框架和代码,但看不到任何错误。* ps:我使用的是Xcode 7.2.1版

Swift项目的链接:https : //drive.google.com/file/d/0B-cDfWHidgvcYnFNcnlMZG1aaDg/view?usp=sharing

Objective-C项目的链接:https : //drive.google.com/file/d/0B-cDfWHidgvcQUFXbktYSE5CeHM/view?usp=sharing

苏珊

您忘记为您的Swift项目添加框架资源,请参见Obj-C项目:

在此处输入图片说明

与Swift项目相比:

在此处输入图片说明

确保所有必需的图像和Xib在“ demoAR”中具有目标成员资格:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift项目中使用Obj-c库/自定义界面

来自分类Dev

如何通过迦太基在Obj-C项目中使用Swift库

来自分类Dev

如何在C ++项目中使用Swift静态库(.a)?

来自分类Dev

Obj-C / Swift项目中的致命陷阱异常

来自分类Dev

Obj-C / Swift项目中的致命陷阱异常

来自分类Dev

如何在类库项目中正确定义DBContext?

来自分类Dev

如何在我的Java项目中正确包含蜡染库?

来自分类Dev

Objective C 项目中 ScrollableGraphicView Swift 库的问题

来自分类Dev

在Objective-c项目中使用Swift:静态库不支持

来自分类Dev

尝试在带有桥接头的Swift项目中尝试使用Objective-C库

来自分类Dev

如何在C ++项目中使用共享动态库?

来自分类Dev

在 C++ 项目中使用 Keccak 库

来自分类Dev

如何在 iOS 项目中构建和使用 C 库?

来自分类Dev

C ++项目中的外部库依赖关系

来自分类Dev

MFC和/ clr C ++项目中的库

来自分类Dev

将iOS Cocoa静态库项目中的Objective-C代码与iOS应用程序项目中的Swift代码一起使用

来自分类Dev

将iOS Cocoa静态库项目中的Objective-C代码与iOS应用程序项目中的Swift代码一起使用

来自分类Dev

在Xcode Swift项目中使用Objective C框架

来自分类Dev

如何正确地将 C++ 静态库包含到 iOS 项目中

来自分类Dev

Swift项目中的链接框架和库

来自分类Dev

使用CocoaPods的DDMathParser在Obj-C项目中不起作用

来自分类Dev

从Swift 3迁移到4/5的Objective-C项目中的Swift CocoaPod库

来自分类Dev

在Scala中正确使用Java库

来自分类Dev

在Swift项目中使用Objective-C代码,该项目同时使用Swift代码

来自分类Dev

在C中正确使用ftw()

来自分类Dev

在C中正确使用递归

来自分类Dev

在C中正确使用递归

来自分类Dev

如何使用GUI将外部库和项目导入到我的C ++项目中?

来自分类Dev

如何使用GUI将外部库和项目导入到我的C ++项目中?

Related 相关文章

  1. 1

    如何在Swift项目中使用Obj-c库/自定义界面

  2. 2

    如何通过迦太基在Obj-C项目中使用Swift库

  3. 3

    如何在C ++项目中使用Swift静态库(.a)?

  4. 4

    Obj-C / Swift项目中的致命陷阱异常

  5. 5

    Obj-C / Swift项目中的致命陷阱异常

  6. 6

    如何在类库项目中正确定义DBContext?

  7. 7

    如何在我的Java项目中正确包含蜡染库?

  8. 8

    Objective C 项目中 ScrollableGraphicView Swift 库的问题

  9. 9

    在Objective-c项目中使用Swift:静态库不支持

  10. 10

    尝试在带有桥接头的Swift项目中尝试使用Objective-C库

  11. 11

    如何在C ++项目中使用共享动态库?

  12. 12

    在 C++ 项目中使用 Keccak 库

  13. 13

    如何在 iOS 项目中构建和使用 C 库?

  14. 14

    C ++项目中的外部库依赖关系

  15. 15

    MFC和/ clr C ++项目中的库

  16. 16

    将iOS Cocoa静态库项目中的Objective-C代码与iOS应用程序项目中的Swift代码一起使用

  17. 17

    将iOS Cocoa静态库项目中的Objective-C代码与iOS应用程序项目中的Swift代码一起使用

  18. 18

    在Xcode Swift项目中使用Objective C框架

  19. 19

    如何正确地将 C++ 静态库包含到 iOS 项目中

  20. 20

    Swift项目中的链接框架和库

  21. 21

    使用CocoaPods的DDMathParser在Obj-C项目中不起作用

  22. 22

    从Swift 3迁移到4/5的Objective-C项目中的Swift CocoaPod库

  23. 23

    在Scala中正确使用Java库

  24. 24

    在Swift项目中使用Objective-C代码,该项目同时使用Swift代码

  25. 25

    在C中正确使用ftw()

  26. 26

    在C中正确使用递归

  27. 27

    在C中正确使用递归

  28. 28

    如何使用GUI将外部库和项目导入到我的C ++项目中?

  29. 29

    如何使用GUI将外部库和项目导入到我的C ++项目中?

热门标签

归档