问题标签 [objective-c-swift-bridge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1407 浏览

objective-c - 创建Objective C to Swift Bridge时“在类型对象上找不到属性”

我收到一条错误消息:使用以下实现时,在“DataManager”类型的对象上找不到属性“clientChatLoad”:

AppDelegate.m

数据管理器.swift

据我了解,添加@class DataManager到我的 Objective C 类以及@objc之前 class func clientChatLoad应该将 Swift 代码暴露给我的 Objective C 类......但我仍然收到一个错误。我可能忽略了什么?

0 投票
1 回答
40 浏览

ios - Apple API fsckup:我如何快速制作 unsafepointerof 0 aka NULL / 0x0?

我有一个参数应该是 UIViewController 的情况!从 objc 正确映射,但遗憾的是,它是 UIViewController。

这个

感觉有点脆弱。对于 0x0 以外的指针,hashValue 可能映射到 0。如何为 NULL 创建一个不安全的指针来比较 unsafeAddressOf(currentVC) ?

Swift 2.3 以防它是一个典型的 Swift 2,但我们在 Swift 3 中做得更好!需要回答的种类。

0 投票
2 回答
535 浏览

ios - 如何将swift文件导入objective-c类,以进行类委托?

我正在快速开发我的,现在我的旧文件很少是用objective-c编写的。所以我为课堂交流搭建了桥梁。

我的一个委托类是用objective-c编写的,现在我想知道哪个是调用我的委托的当前类。

我正在尝试isKindOfCalss,它的火是找不到像识别这样的错误。一旦我导入快速文件错误更改为前向声明。

有什么建议我应该怎么做?

在我的情况下,导入也不起作用,请参阅附图。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
1337 浏览

objective-c - 我如何通过使用桥文件将我的 swift 代码合并到现有的目标 c 项目中

我在目标 c 现有项目中使用 bridge.h 文件合并我的 swift 类,之后我无法将我的 swift 类导入到我的 bridge.h 文件中

在此处输入图像描述

0 投票
0 回答
254 浏览

objective-c - 使用 Xcode 8.2.1 将 FairPlay Streaming Server SDK(它在 swift 中)集成到我现有的目标 c 代码中

我尝试将 FairPlay Streaming Server SDK(它在 swift 中)集成到我现有的目标 c 代码中。在 MAC OSX 10.12.3 系统中使用 Xcode 8.2.1 项目。FairPlay Streaming Server SDK 包含可以导入目标的 swift 类使用桥接文件的 c 代码出现以下错误,如图所示在此处输入图像描述

0 投票
2 回答
382 浏览

ios - 混合 Swift 和 ObjC pod 不起作用

我有一个只有 Objective-C pod 的 podfile,看起来像这样:

和一个看起来像这样的桥接头:

现在,我想添加一个 Swift pod 的 Alamofire。所以我必须使用use_frameworks!,我的 podfile 看起来像这样:

但是当我尝试构建我的项目时,我得到了 2 个错误:

第一个在我的桥接头上:

找不到“PocketSVG.h”文件

第二个不在特定文件上:

导入桥接头失败

知道如何解决吗?

0 投票
2 回答
3586 浏览

swift - 使用 NSExpression 时捕获 NSInvalidArgumentException 的正确方法

我想验证用户创建的表达式(如“2+2”、“5+7”或更复杂)。我使用 NSExpression 类来解析和计算这个表达式。这是我的游乐场代码:

当我使用有效表达式 ("2+2") - 我得到结果。但有时用户可能会提供错误的字符串(例如“2+”)。使用此字符串,我的应用程序会因此崩溃:

我不明白如何捕获这个异常以及为什么上面的代码不这样做。现在我使用Objective C类(具有相同的逻辑),从我的swift代码中调用这个方法,在那个类中我真的可以捕捉到这样的异常:

这行得通,我可以获得正确的解析状态(nil 表示表达式有问题)和结果(NSNumber),但我真的很想了解如何在 Swift 中正确地完成所有这些事情。

0 投票
1 回答
232 浏览

ios - 为objective-c麦克风检测添加动画

我有两个独立的项目:

一个具有由计时器和计数器设置的 png 动画,以在用户按下开始/停止 (swift) 时保持循环。

另一个检测用户何时向 iPhone 麦克风吹气(目标 c)。

我想加入这两个,以便麦克风检测触发动画播放和停止。任何人都可以建议最好的方法,我已经开始在我的麦克风检测项目中创建一个 viewcontroller.swift 并使用一个桥接头来做到这一点。我不确定如何继续输入动画代码,它进入哪个文件,如何链接 swift 和 Objective c 文件等?

提前致谢。

0 投票
1 回答
114 浏览

objective-c - 在目标 c 项目的单独项目中调用 swift 文件。Apple Mach-o 链接器错误

我们有一个旧的 iOS 目标 C 应用程序。我们想添加“快速”功能。创建了一个单独的“Cocoa touch framework”项目以从“objective C”项目中引用它。当我尝试从目标 c 快速调用/初始化任何方法时出现此错误

ld /Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Products/Debug-iphonesimulator/super.app/super normal x86_64 cd /Users/teeboy/iWorkbench/super export IPHONEOS_DEPLOYMENT_TARGET=10.0 export PATH=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin: /bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms /iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.3。sdk -L/Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Products/Debug-iphonesimulator -F/Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Products/ Debug-iphonesimulator -F/Users/teeboy/iWorkbench/super -filelist /Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Intermediates/super.build/Debug-iphonesimulator/super.build/Objects- normal/x86_64/super.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=10.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/teeboy/Library/Developer/Xcode/DerivedData/super- aybvkjtipygrszeyqsnbmtglaaqi/Build/Intermediates/super.build/Debug-iphonesimulator/super.build/Objects-normal/x86_64/super_lto。o -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -ObjC -all_load -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/teeboy/Library/Developer/Xcode/DerivedData /super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Intermediates/super.build/Debug-iphonesimulator/super.build/super.app。xcent -lz -lPatientSearch -framework MapKit -framework ZipArchive -framework QuartzCore -lMobuleMenuCell -framework OCMockitoIOS -framework Security -lModuleNavigation -lToDoList -framework CoreData -lPatientChart -framework CoreText -framework Crashlytics -framework CoreLocation -lVisitNotes -lDataAccess -lDashboard -framework MobileCoreServices -框架 SystemConfiguration -lframework -lsuperCommon -framework UIKit -framework OCHamcrestIOS -framework Foundation -framework CoreGraphics -Xlinker -dependency_info -Xlinker /Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Intermediates/super.build/Debug -iphonesimulator/super.build/Objects-normal/x86_64/super_dependency_info.dat -o /Users/teeboy/Library/Developer/Xcode/DerivedData/super-aybvkjtipygrszeyqsnbmtglaaqi/Build/Products/Debug-iphonesimulator/super.应用程序/超级

架构 x86_64 的未定义符号:“_OBJC_CLASS_$__TtC5utils3zip”,引用自:libDashboard.a(ASLandingPageVC.o) 中的 objc-class-ref ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败并出现退出代码1(使用 -v 查看调用)

swift 库的名称是“utils”。旧的目标 c 应用程序使用一些其他项目依赖项。抱歉,xcode 的新手。

0 投票
1 回答
466 浏览

ios - 导入自动生成的 Swift 标头的 Obj-C 文件

这是Import a file in bridging-header 的部分副本,该文件导入 Swift 标头,但我遇到与Rich相同的问题

但是在 Swift 中声明的枚举呢?:(

我正在将 Obj-C iPad 应用程序移植到 iPhone。但是我是一个 Swift 开发者,我真的不想重写现有的功能;而是替换 UI。

我为 iPhone 版本创建了一个新目标。在我的桥接头中,我导入了一个使用#import "ProjectName-Swift.h". 由于此文件是自动生成的,因此在我构建此新目标时它不存在。链接的答案是添加一个@class,但遗留代码使用一个枚举,它现在给出错误“预期类型”。