- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试将 Objective-C 框架与 Swift 编程语言一起用于 iOS 8 开发。这是导入的特定情况,但一般问题是:
如何将 Objective-C 框架导入 swift 并让导入被识别?
我正在尝试将 Parse 框架集成到使用 iOS 8 和 Xcode 6 测试版的 swift 应用程序中。
以下是Objective-C中Parse框架集成的技术:
https://www.parse.com/apps/quickstart#social/mobile/ios/native/existing
我已将 Parse 框架下载为压缩存档,将其解压缩并导入 Xcode 6,没有任何问题。在我的应用程序中,它显示为名为 Parse.framework 的格式正确的框架。
我目前的思路是修改AppDelegate.swift
我的项目的根目录中的文件。这是当前未修改的文件(由 Xcode 在 swift 项目创建时自动生成):
https://gist.github.com/fconcklin/e8ef7d8b056105a04161
我尝试通过添加行来导入解析 import Parse
低于 import UIKit
线.但是,Xcode 会发出警告,提示找不到此类模块并且构建失败。
我也尝试创建一个文件 ${PROJ_NAME_HERE}-Bridging-Header.h
包含使用 import <Parse/Parse.h>
的 Parse 的 Objective-C 导入.这条线不会引发错误,但似乎最终没有任何区别。
最佳答案
经过进一步研究,我找到了解决方案,并意识到我只是感到困惑。
正确做法如下:
通过将框架拖放到 Xcode 6 Swift 项目中来导入您的 Objective C 框架。
在您的项目中创建一个新的 Objective C 文件(File->New->File [Objective C for iOS])。
接受提示(同意)在 Objective C 和 Swift 之间创建一个桥接头文件。
删除新创建的 Objective C 文件,但保留桥接头文件 ${YOURPROJ}-Bridging-Header.h
.
在 Bridging 头文件中,使用标准 Objective C 导入语法(例如 #import <Parse/Parse.h>
)导入您的框架。
这放弃了执行 import Parse
的需要您的 AppDelegate.swift
中的声明文件。您现在可以编写使用任何框架的代码,只要它是使用桥接头导入的。它在整个项目的 Swift 文件中都可用。
现在,如果您想在项目中测试 Parse 集成,您可以输入 Parse.
并使用代码完成浏览框架并查看代码完成表示成功导入。
但是,在使用桥接头文件时,这里还有一个需要注意的警告。框架的所有依赖项也需要在桥接头文件中指定。在将 Parse 框架集成到 Swift 应用程序的情况下,您的 Bridging Header 文件将如下所示:
#import <Foundation/Foundation.h>
// Parse Dependencies
#import <AudioToolbox/AudioToolbox.h>
#import <CFNetwork/CFNetwork.h>
#import <CoreGraphics/CoreGraphics.h>
#import <CoreLocation/CoreLocation.h>
#import <MobileCoreServices/MobileCoreServices.h>
#import <QuartzCore/QuartzCore.h>
#import <Security/Security.h>
#import <StoreKit/StoreKit.h>
#import <SystemConfiguration/SystemConfiguration.h>
// Import parse framework
#import <Parse/Parse.h>
希望这会有所帮助。
关于ios - 将 Objective-C 框架连接到 Swift iOS 8 应用程序(解析框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24272184/
我是 C 语言新手,我编写了这个 C 程序,让用户输入一年中的某一天,作为返回,程序将输出月份以及该月的哪一天。该程序运行良好,但我现在想简化该程序。我知道我需要一个循环,但我不知道如何去做。这是程序
我一直在努力找出我的代码有什么问题。这个想法是创建一个小的画图程序,并有红色、绿色、蓝色和清除按钮。我有我能想到的一切让它工作,但无法弄清楚代码有什么问题。程序打开,然后立即关闭。 import ja
我想安装screen,但是接下来我应该做什么? $ brew search screen imgur-screenshot screen
我有一个在服务器端工作的 UDP 套接字应用程序。为了测试服务器端,我编写了一个简单的 python 客户端程序,它发送消息“hello world how are you”。服务器随后应接收消息,将
我有一个 shell 脚本,它运行一个 Python 程序来预处理一些数据,然后运行一个 R 程序来执行一些长时间运行的任务。我正在学习使用 Docker 并且我一直在运行 FROM r-base:l
在 Linux 中。我有一个 c 程序,它读取一个 2048 字节的文本文件作为输入。我想从 Python 脚本启动 c 程序。我希望 Python 脚本将文本字符串作为参数传递给 c 程序,而不是将
对于一个类,我被要求编写一个 VHDL 程序,该程序接受两个整数输入 A 和 B,并用 A+B 替换 A,用 A-B 替换 B。我编写了以下程序和测试平台。它完成了实现和行为语法检查,但它不会模拟。尽
module Algorithm where import System.Random import Data.Maybe import Data.List type Atom = String ty
我想找到两个以上数字的最小公倍数 求给定N个数的最小公倍数的C++程序 最佳答案 int lcm(int a, int b) { return (a/gcd(a,b))*b; } 对于gcd,请查看
这个程序有错误。谁能解决这个问题? Error is :TempRecord already defines a member called 'this' with the same paramete
当我运行下面的程序时,我在 str1 和 str2 中得到了垃圾值。所以 #include #include #include using namespace std; int main() {
这是我的作业: 一对刚出生的兔子(一公一母)被放在田里。兔子在一个月大时可以交配,因此在第二个月的月底,每对兔子都会生出两对新兔子,然后死去。 注:在第0个月,有0对兔子。第 1 个月,有 1 对兔子
我编写了一个程序,通过对字母使用 switch 命令将十进制字符串转换为十六进制,但是如果我使用 char,该程序无法正常工作!没有 switch 我无法处理 9 以上的数字。我希望你能理解我,因为我
我是 C++ 新手(虽然我有一些 C 语言经验)和 MySQL,我正在尝试制作一个从 MySQL 读取数据库的程序,我一直在关注这个 tutorial但当我尝试“构建”解决方案时出现错误。 (我正在使
仍然是一个初学者,只是尝试使用 swift 中的一些基本函数。 有人能告诉我这段代码有什么问题吗? import UIKit var guessInt: Int var randomNum = arc
我正在用 C++11 编写一个函数,它采用 constant1 + constant2 形式的表达式并将它们折叠起来。 constant1 和 constant2 存储在 std::string 中,
我用 C++ 编写了这段代码,使用运算符重载对 2 个矩阵进行加法和乘法运算。当我执行代码时,它会在第 57 行和第 59 行产生错误,非法结构操作(两行都出现相同的错误)。请解释我的错误。提前致谢:
我是 C++ 的初学者,我想编写一个简单的程序来交换字符串中的两个字符。 例如;我们输入这个字符串:“EXAMPLE”,我们给它交换这两个字符:“E”和“A”,输出应该类似于“AXEMPLA”。 我在
我需要以下代码的帮助: 声明 3 个 double 类型变量,每个代表三角形的三个边中的一个。 提示用户为第一面输入一个值,然后 将用户的输入设置为您创建的代表三角形第一条边的变量。 将最后 2 个步
我是新来的,如果问题不好请见谅 任务:将给定矩阵旋转180度 输入: 1 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出: 16 15 14 13 12 11
我是一名优秀的程序员,十分优秀!