问题标签 [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.
ios - React Native / Swift Native 模块只工作一次
我在我的 react native ios 应用程序中使用 swift native 模块从资产 url 生成动画 gif。它在第一次尝试时运行良好,但是当我转义组件并在使用一次后传递新资产时,应用程序崩溃,有时会显示此错误:
反应错误:
或者有时xcode将我重定向到这个objective-c函数,告诉我要返回的_instance没有价值:
这是我在我的反应组件中调用我的本机模块的方式:
我如何在 GifGenerator.m 中导出我的 swift 模块:
我的快速课程的重要部分:
它们是我代码的重要部分,但如果您需要,我可以向您展示更多
javascript - React-Native:应用关闭时后台应用刷新
我需要每 30 或 60 分钟更新一次应用程序的数据库。经过大量搜索,我找到了这个模块:
https://github.com/transistorsoft/react-native-background-fetch
正如它在其页面中所说:
iOS Background Fetch 基本上是一个 API,它大约每 15 分钟(在用户的黄金时段)唤醒您的应用程序,并为您的应用程序提供正好 30 秒的后台运行时间。每当后台获取事件发生时,此插件将执行您提供的 callbackFn。没有办法增加 fetch-event 发生的速率,这个插件将速率设置为 UIApplicationBackgroundFetchIntervalMinimum 的最频繁的可能值——iOS 根据设备使用情况和时间自动确定速率(即:fetch-黄金时段的速率约为 15 分钟;假设用户在睡觉时频率较低,例如凌晨 3 点)。
如果我用swift写一些代码怎么办?我在 react native 中使用 sqlite 来存储我的数据。如果我在 swift 中编写一些代码来唤醒并检查新数据,我可以访问我用来存储数据的同一个数据库吗?
我正在使用 react-native-sqlite-storage 将我的数据存储在 react native 中。
objective-c - CryptoSwift 和 Objective-C
如何在我的 Objective-C 项目中使用 CryptoSwift?
我有一个 Objective-C 项目,并想为此使用加密库 CryptoSwift。我已经成功地将单个 Swift 文件用于我的 Objective-C 项目,但是如何使用 Swift 项目作为在 Objective-C 中构建的父项目的子项目。
我也尝试使用可可豆荚,但无济于事。
c - 将字符串从 Swift 传递到 C 回 Swift
在 Swift 和 C 之间传递字符串时,我看到一些我不理解的行为。考虑以下 Swift 函数:
和 C 函数:
如果我demo
按照上面的方式运行(所以只有 B2 和 B3 行被注释掉),我得到以下输出:
有两件事让我感到惊讶:1) C 代码获取指针 0x10021b9b0,而在 Swift 中,字符串存储在 0x000000010021b8a0。我本来希望它们是相同的,但我猜 Swift 在将它传递给 C 之前会复制字符串?2) 更令人惊讶的是,虽然从 C 返回到 Swift 的指针在同一个位置,但内容却不同;此外,最后两个打印语句产生不同的输出。
现在,如果我简单地注释掉行 A in demo
,我会得到以下结果:
这令人惊讶,因为调用 C 函数之前的所有内容都不正确。
如果我然后注释掉 B1 行并取消注释 B3(只是删除对 C 的调用),我会得到预期的输出:
如果我在未注释的 B2 行(注释掉 A、B1 和 B3)的情况下运行它,我会得到:
最后,如果我在未注释 A 和 B2 行(B1 和 B3 被注释掉)的情况下运行,我会得到预期的结果:
在我看来,对 C 的调用以一种不可预测的方式占用了内存,但是我在这里做错了什么吗?
在 macOS Sierra、Xcode 8.0、Swift 3.0 上运行。
swift - NS_SWIFT_NAME 用于将 C 函数作为类扩展导入
我有两个 C 函数:
作为练习,我尝试将它们作为扩展方法导入 Swift 中UIColor
。
遵循 Apple 在 WWDC 2016 示例中的“Swift 中的新功能”演示文稿:
我试图类似地注释我的函数:
但是我收到以下警告:
'swift_name' 属性只能应用于带有原型的函数声明
我在这里做错了什么?
更新:为此问题打开了SR-2999 。
objective-c - 找不到 Swift 到 Objective C 头文件
我在最新的 Xcode 8.0 上遇到了这个问题,当我尝试#import "xxx-Swift.h"
在我的 Objective C 实现中时,我的代码编辑器中出现“找不到文件”的错误。
该项目可以正常构建和调试,但我似乎无法摆脱这个恼人的红色子弹。
我已经完成了所有的构建设置,并且触发并使用了它们中的每一个。
是的,这些设置肯定看起来不错。
正如我所说,项目构建成功。
但是代码窗口中的错误确实很烦人。
最终我用一个
有人对我如何解决这个问题或我做错了什么有更好的建议吗?
也许,一个 Xcode 错误?
反馈/建议将不胜感激。
提前致谢。
objective-c - 将 swift 代码桥接到 obj c 项目中
我添加了 swift 桥并更改了正确的设置以允许在 objc 项目中使用 swift。但我最大的问题是,我试图桥接的 swift3 代码在我的项目中出现了所有错误,因为它显示它没有成员、没有类型等。伴随着 Parse 发出错误并且不想工作。 .我不知道它是否是该项目的基础,如果它太旧并且无法做到这一点,因为该项目已经 2 岁或什么...
以下是我看到的一些错误,希望能指出正确的方向。
tltr-我看到的一些大问题是类型“UIApplication”没有成员“共享”并且使用未解析的标识符“解析”以及“UIImage”类型的值没有成员“绘制”
ios - 目标 C 中的 Swift 类
我有 settings.swift 并且我正在将 -Swift.h 导入到我的 ObjC 类 .m 文件中。我需要类似的东西:
@property(nonatomic, strong) 设置 *settings; 但是 -Swift.h 必须在 .m 文件中导入,并且 .h 对 settings.swift 一无所知。你知道怎么做吗?