edit: Myślę, że to może być o załadunku .xib z Objective-C biblioteki i wyświetlanie go na widoku kontrolera SwiftaPrawidłowo używając Obj-C biblioteki w projekcie Swift
Próbowałem użyć https://github.com/promet/PRAugmentedReality biblioteka w szybkiej aplikacji.
To doskonale współpracuje z obj-c, jak:
Ale kiedy most go do szybkiego projektu zacznie działać tak:
Poniżej można zobaczyć moje kroki, kiedy zintegrowany tej biblioteki do mojego szybkiego projektu, kody mojego szybkiego projektu i link do pobrania dla projektów zarówno obiektywnych jak i szybkich. Także tutaj są youtube filmy PR Augmented ram Rzeczywistość:
Link 1: Getting Started -> https://www.youtube.com/watch?v=fdN0XAoZXOY
Link 2: Walkthrough of Internals-> https://www.youtube.com/watch?v=Xmx-0OnzTPY
Swift etapy projektu:
- Stworzenie jednolitego stosowania widok z Xcode wersja 7.2 .1 (7C1002) o nazwie demoAR
- Dodaję Foundation.framework, CoreGraphics.framework i UIKit.framework z Targets -> demoAR -> Build Phases -> Link Binar y z bibliotekami
- Następnie, Plik -> Nowy cel -> Cocoa Touch Framework i kliknięty Dalej
- Utworzono obiekt docelowy, który ma następujące właściwości: Nazwa produktu: PRAR, Język: Objective-C i Identyfikator organizacji: com.timur. PRAR, a następnie kliknąłem Zakończ
- Utworzyłem inną grupę pod PRAR i nazwał ją "Klasy", Potem skopiowałem pliki z folderu Klasy z frameworka i dodałem je do folderu PRAR/Classes.
- Zmieniłem każdy .h plików ram za docelowy członkostwo "publiczny"
potem importowane pliki nagłówkowe do mojego pliku pomostowej (PRAR. h) jak to
#import <PRAR/ARSettings.h> #import <PRAR/PRARManager.h> #import <PRAR/ARController.h> #import <PRAR/ARObject.h> #import <PRAR/ARRadar.h> #import <PRAR/LocationMath.h>
Reszta co zrobił w celu uruchomienia tej ramy, w moim szybkim projektu pozostaje w moim pliku ViewController.swift takich jak:
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") } }
Poniżej można pobrać Objective-C i szybkie projektów. Chcę tylko, aby szybki projekt mógł być uruchamiany jako projekt typu "cel-c". Jak mogę to zrobić? Ciągle przechodzę przez wszystkie ramy i mój kod, ale nie widzę czegoś złego. * ps: Używam wersji Xcode 7.2.1
Swift projektu Link: https://drive.google.com/file/d/0B-cDfWHidgvcYnFNcnlMZG1aaDg/view?usp=sharing
objective-c projektu Link: https://drive.google.com/file/d/0B-cDfWHidgvcQUFXbktYSE5CeHM/view?usp=sharing
* ps: Próbowałem sformatować tak dużo, jak tylko potrafię, ale teraz wydaje się, że coś jest nie tak ze stackoverflow. Nie można poprawnie sformatować kodu. –
Myślę, że może to dotyczyć ładowania .xib z biblioteki object-c i wyświetlania go na kontrolerze widoku Swift. Wszelkie pomysły ?? .. –