将SQLClient导入现有的Xcode(Swift)项目

时间:2017-04-06 15:26:58

标签: swift xcode

我从来没有搞过iOS,所以这对我来说都是新手。我正在尝试将SQLClient导入到现有的Xcode项目中。 (我需要从iOS应用程序中启动INSERT。)

https://github.com/martinrybak/SQLClient

我已经尝试了Martin通过cocoapods和手册列出的两种安装方法,但我无法工作。

对于选项#1)一切正常,直到我尝试pod install并遇到

分析依赖关系 [!]依赖项SQLClient (~> 0.1.3)未在任何具体目标中使用。

我希望命令生成一个名为SQLClient.xcworkspace的文件。我不确定这个新的xcworkspace文件是否意在替换我的主项目xcode文件。但由于它不起作用,我转到选项#2。

对于选项#2,我不确定将内容放在何处。 (马丁是/SQLClient/SQLClient/SQLClient/SQLClient还是/SQLClient/SQLClient/SQLClient?)

我应该只复制文件还是整个文件夹? 内容是否与我的原始xcode项目文件或子文件夹在同一级别进入我的项目? 我尝试了几个变种,但我承认不知道SQLClient文件/文件夹应放在哪里与我的其他项目文件有关。

我也试过搞乱我的桥文件但是我无法正确加载它。

我有一些时间(2天)来解决这个问题所以我愿意学习,但我需要一些指导。

这是我现有Xcode项目的图片以及导入SQLClient的最新尝试。enter image description here

4 个答案:

答案 0 :(得分:3)

看起来您的项目中的所有文件都已正确。

要检查的事情。

如果您在将object-c文件拖到项目中时创建了桥文件,那么您只需要将#import "SQLClient.h"添加到桥文件中。如果您手动创建了桥文件,请确保将其添加到Build Settings - Objective-C Bridging Header。

确保您的目标 - 通用链接框架和库libiconv.tblibfreetds.a

Swift 3

class testViewController: UIViewController, SQLClientDelegate {
      // Handles errors from the SQLClient
      func error(_ error: String!, code: Int32, severity: Int32) {
            print("\(error!) \(code) \(severity)")
      }
       //MARK: Lifecyle
      override func viewDidLoad() {
           super.viewDidLoad()
           let client = SQLClient.sharedInstance()!
           client.delegate = self
           client.connect("ServerNameOrIP", username: "cool", password: "cool", database: "database") { success in
           client.execute("SELECT * FROM table", completion: { (_ results: ([Any]?)) in
            for table in results as! [[[String:AnyObject]]] {
                for row in table {
                    for (columnName, value) in row {
                        print("\(columnName) = \(value)")
                    }
                }
            }
            client.disconnect()
        })
    }
   } 
 }

创建了一个示例项目here

答案 1 :(得分:1)

在更改pod文件以包含目标后,我能够获得安装选项#1。

target "TargetName" do
pod 'SQLClient', '~> 0.1.3'
end

答案 2 :(得分:0)

我手动下载了SQLClient,它对我有用。您将在此处获得从swift项目进行连接的步骤-https://github.com/salmasumona/Call-SP-from-iOS-project-using-SQLClient

答案 3 :(得分:0)

SWIFT 5

enter image description here在Swift项目中使用Obj-C的最佳方法是使用桥接头文件,而我对SQLCLient所做的就是从SQL客户端拖放文件,然后Xcode会询问您是否要创建桥接头文件,请选择是。

在桥接头文件中,导入“ SQLClient.h”,您可以从此处构建项目,所有内容均应编译。然后,您可以像上面和在.connect内一样创建一个SQLClient对象,确保完成处理程序检查它是否成功,然后在闭包内部可以调用client.execute,如果在此处将SQL命令作为字符串,则可以从此处调用并将数据用作.execute完成块中的变量,如果您打印此数据变量,则将从SQL Server返回所有数据。它以JSON返回,因此您可以从此处使用JSON序列化进行转换。

如果您有任何疑问,请随时给我发消息,我将返回一个屏幕截图,以说明我的代码,以便为您提供帮助!