小编Moz*_*ler的帖子

如何使用Swift创建React-Native框架

我有一个用Swift编写的本机组件,我希望将其作为一个框架提取出来,以便其他项目/人员可以轻松使用它.

首先我创建了一个新的iOS项目Foo,添加了一个框架目标,然后添加了源文件.最后,我建立了它.

失败的原因是:

Bar.swift:[lineNumber]:使用未解析的标识符'RCTConvert'RNBarManager.swift:[lineNUmber]:使用未声明的类型'RCTViewManager'

尝试1:

我跑了react-native link,但没有改变.

尝试2:

  1. 拖动React.xcodeprojFoo项目并添加libReact.aLink Binary With Libraries.
  2. 添加$(SRCROOT)/../node_modules/react-native/ReactHeader Search Paths.

但它不起作用.错误仍然存​​在.

尝试3:

我想也许Swift不会识别这些文件.

所以我Foo-Bridging-Headers.h像在React-Native App中一样添加,其中包含以下代码:

#import "React/RCTBridge.h"
#import "React/RCTViewManager.h"
#import "React/RCTUIManager.h"
#import "React/UIView+React.h"
#import "React/RCTBridgeModule.h"
Run Code Online (Sandbox Code Playgroud)

我还加入Foo-Bridging-Headers.hBuild Settings->Swift Compiler - General->Object-C Bridging Header,

我还是错了.

不支持将桥接头与框架目标一起使用

这里似乎不允许桥接标题.

尝试4:

我尝试添加这些进口Foo.h,

但又得到了一个错误.

Foo.h:21:9:在框架模块'Foo'中包含非模块化头

我该怎么做才能成功编译?

swift react-native

33
推荐指数
1
解决办法
2367
查看次数

Kotlin中的静态内在类

Inner static Class如果它存在,我可以在Kotlin语言中使用什么替代品?如果没有,当我需要static class在Kotlin中使用时,如何解决这个问题?请参阅以下代码示例:

 inner class GeoTask : AsyncTask<Util, Util, Unit>() {

    override fun doInBackground(vararg p0: Util?) {

        LocationUtil(this@DisplayMembers).startLocationUpdates()
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索了很多,没找到任何东西,非常感谢你提前.

java static class kotlin

26
推荐指数
2
解决办法
7878
查看次数

如何在config.ini文件中加载环境变量?

我有一个 config.ini 文件,其中包含一些属性,但我想读取配置文件中的环境变量。

[section1]
 prop1:(from envrinment variable) or value1
Run Code Online (Sandbox Code Playgroud)

这是可能的还是我必须编写一个方法来处理这个问题?

python configuration ini

9
推荐指数
1
解决办法
2万
查看次数

视图具有阴影设置但无法有效地计算阴影

我收到此错误消息:

>View #54 of type RCTView has a shadow set but cannot calculate shadow efficiently.
Run Code Online (Sandbox Code Playgroud)

错误信息很明显,除了我不知道哪个视图#54?!?

有没有办法弄清楚本机编号系统对本机的反应?

react-native

7
推荐指数
1
解决办法
654
查看次数

基于模型的优化(以mlrMBO为单位)需要多少次迭代?

我想在R(mlrMBO)的mlr-Package中使用基于模型的优化来调整我的超参数.这里推荐多少次迭代?我已经读过MBO中必要的迭代次数取决于超参数的数量,应该乘以某个因子?

performance r hyperparameters mlr

5
推荐指数
1
解决办法
125
查看次数

固定快捷方式中奇怪的应用程序图标重复(Android O)

我正在为Android O设备(仿真器或物理设备)的应用启动器图标创建固定的快捷方式,并发现了奇怪的行为。我的代码如下所示:

@TargetApi(Build.VERSION_CODES.O)
    private void createPinnedShortcut(Context context) {
        ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
        if (shortcutManager != null) {
            if (shortcutManager.isRequestPinShortcutSupported()) {
                Intent intent= MainActivity.getLaunchIntent(this);
                intent.setAction(Intent.ACTION_VIEW);

                ShortcutInfo shortcut = new ShortcutInfo.Builder(context, "my_shortcut_id")
                        .setShortLabel(context.getString(R.string.my_app_description))
                        .setLongLabel(context.getString(R.string.my_app_long_description))
                        .setIcon(Icon.createWithResource(context, R.mipmap.my_app_icon))
                        .setIntent(intent)
                        .build();
                shortcutManager.requestPinShortcut(shortcut, null);
            } else
                Toast.makeText(context, "Pinned shortcuts are not supported!", Toast.LENGTH_SHORT).show();
        }
    }
Run Code Online (Sandbox Code Playgroud)

一切正常,但是主屏幕上的启动器图标已复制:

应用启动器图标

有一个正常的图标,但是在右下角放置了另一个图标副本(缩小了约30-40%)。

我的图标资源在res/mipmap-*dpi*文件夹中

有什么提示,线索吗?

更新资料

回答评论:

1)AndroidManifest下./build/manifests/debug看起来像:

    <activity
        android:name="ru.ivanovpv.cellboxkeeper.android.MainActivity"
        android:exported="true"
        android:label="@string/cellboxkeeper"
        android:theme="@style/DefaultActivityTheme.Light"
        android:windowSoftInputMode="adjustResize" >
        <layout
            android:defaultHeight="800dp"
            android:defaultWidth="480dp"
            android:gravity="top|end"
            android:minHeight="320dp"
            android:minWidth="240dp" />

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" …
Run Code Online (Sandbox Code Playgroud)

java icons android shortcut android-8.0-oreo

5
推荐指数
1
解决办法
409
查看次数

如何将 OpenGLES 着色器转换为 Metal 兼容的着色器?

我有一个项目,它使用大约 2 打.vsh.fsh文件使用 OpenGLES 绘制 2D 图块。由于已弃用,我想将我的项目转换为 Metal。我现在脑子里充斥着两个系统中涉及的词汇和技术——图形不是我的强项。

我可以使用 OpenGLES 编译 .vsh/.fsh 文件,然后将它们保存为与金属兼容的格式吗?目标是然后在以金属为中心的世界中使用保存的信息并从项目中删除所有 OpenGLES 代码。我已经在这方面花了几天时间,但我对这些过程还不够了解,无法完全尝试过渡到 Metal。任何/所有帮助表示赞赏。

我看到了这一点:“在支持它的设备上,您提供给 SKShader 的 GLSL 代码会自动转换为 Metal 着色语言并在 Metal 渲染器上运行”,这让我相信有一种方法可以完成这项工作。我只是不知道从哪里开始。OpenGL ES 在 iOS 12 和 SKShader 中弃用

我见过这个: Convert OpenGL shader to Metal (Swift) to used in CIFilter,如果它回答了我的问题,我不明白如何。

我认为这也没有答案:OpenGL ES and OpenGL compatible shaders

答案/技术可以使用 Objective-C 或 Swift - 现有代码是 Objective-C,项目的其余部分已转换为 Swift 5。

opengl-es objective-c swift metal

5
推荐指数
1
解决办法
1729
查看次数

为什么导航栏中的 SwiftUI TextField 一次只接受输入一个字符

我希望允许用户过滤长列表中的数据以更轻松地找到匹配的标题。

我在导航栏中放置了一个 TextView:

.navigationBarTitle(Text("Library"))
.navigationBarItems(trailing: TextField("search", text: $modelData.searchString)
Run Code Online (Sandbox Code Playgroud)

我有一个响应搜索字符串变化的可观察对象:

class DataModel: ObservableObject {
   @Published var modelData: [PDFSummary]
   @Published var searchString = "" {
            didSet {
                if searchString == "" {
                    modelData =  Realm.studyHallRealm.objects(PDFSummary.self).sorted(by: { $0.name < $1.name })
                } else {
                    modelData =  Realm.studyHallRealm.objects(PDFSummary.self).sorted(by: { $0.name < $1.name }).filter({ $0.name.lowercased().contains(searchString.lowercased()) })
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

一切正常,除了我必须在输入每个字母后点击字段。出于某种原因,在输入每个字母后焦点会从字段上移开(除非我点击建议的自动更正 - 整个字符串立即正确添加到字符串中)

textfield swiftui

5
推荐指数
1
解决办法
783
查看次数

单例实现 - 为什么需要复制构造函数?

我在网上找到了这个单例设计模式的代码:

class Foo
{

public:
    static Foo& getInstance()
    {
        static Foo instance;
        return instance;
    }
private:
    Foo() {};
    Foo(Foo const&);
    Foo& operator=(Foo const&);

}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么构造函数Foo(Foo const&);Foo& operator=(Foo const&);都需要.有人可以向我解释一下吗?

c++ singleton operator-overloading copy-constructor

4
推荐指数
1
解决办法
2605
查看次数

如何在openCV中标准化图像?

我对 openCV 完全陌生,并且一度卡住了。

我有一个灰度图像,但我需要标准化这个图像。例如:我有一个cv::mat图像,它可能有一个包含一些值和每个索引的矩阵。由于我有灰色图像,它每个索引可能只包含 1 个值。现在我需要将每个值除以 255。

在 C++ 中的 openCV 中是否有任何可用的方法或工具?对于这种情况,我相信我要使用的方法在 openCV 中称为规范化?

cv::Mat originalMat = [OSInference cvMatFromUIImage:imgBeforeProccessing];
cv::Mat img2;

cv::cvtColor(originalMat, img2,CV_BGR2GRAY);
cv::resize(img2, img2, cv::Size(128, 128), 0, 0, CV_INTER_CUBIC);
cv::Mat img3;
Run Code Online (Sandbox Code Playgroud)

现在如何归一化(这意味着将矩阵中的每个值除以 255)??

我将 mat 图像转换为 iOS 图像,如下所示:

+ (UIImage *)UIImageFromCVMat:(cv::Mat)cvMat{
    NSData *data = [NSData dataWithBytes:cvMat.data length:cvMat.elemSize()*cvMat.total()];

    CGColorSpaceRef colorspace;

    if (cvMat.elemSize() == 1) {
        colorspace = CGColorSpaceCreateDeviceGray();
    }else{
        colorspace = CGColorSpaceCreateDeviceRGB();
    }

    CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);

    // Create CGImage from cv::Mat
    CGImageRef imageRef = CGImageCreate(cvMat.cols, cvMat.rows, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv objective-c ios

2
推荐指数
2
解决办法
2万
查看次数

将约束添加到uiview时的SIGABRT

自动布局再次让我挠头。我在类的顶部定义了UIView和UITextField:

var urlField = UITextField(frame: .zero)
var barView = UIView(frame: .zero)
Run Code Online (Sandbox Code Playgroud)

我从viewWillAppear调用我的配置方法(所以我知道self.view已全部设置):

   override func viewWillAppear(_ animated: Bool) {
                configureURLBar()
    }
Run Code Online (Sandbox Code Playgroud)

而且我在那没什么特别的。

func configureURLBar() {
    barView.translatesAutoresizingMaskIntoConstraints = false
    barView.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true
    barView.heightAnchor.constraint(equalToConstant: 30).isActive = true
    }
Run Code Online (Sandbox Code Playgroud)

当到达topAnchor约束时,我得到了异常,但我不明白为什么。如果我反转第二和第三行,直到到达.topAnchor行,它才炸毁,所以这就是问题所在。一旦理解了此异常的原因,我就可以问第二个问题(以防万一,您想知道我要做什么):如何在UIWebView的顶部添加用户输入(URL)栏。(这也不起作用-如果我尝试限制显示完美的self.webView时得到相同的结果)另外:我在调用viewWillAppear()之前先调用self.view.setNeedsDisplay()。

debugging autolayout swift

2
推荐指数
1
解决办法
437
查看次数

如何使用 HStack 使 SwiftUI 视图中的所有视图具有相同的高度?

我想要一个简单的图表,其中每个数据点都有一个可变高度的彩色矩形。彩色矩形下方的空白区域应扩大,以便底部数字对齐,就像顶部一行数字一样。

这是我的观点:

在此输入图像描述

因此,我想要一个惯用的解决方案,使底行数字与 59 对齐。欢迎任何为我指明正确方向的建议。谢谢。

这是我到目前为止所拥有的:

struct DemoView: View {
    var dataSource = [1, 0, 34, 12, 59, 44]
    /// Provide a Dynamic Height Based on the Tallest View in the Row
    @State private var height: CGFloat = .zero // < calculable height
    /// The main view is a row of variable height views
    var body: some View {
        HStack(alignment: .top) {
            Spacer()
            /// i want these to all be the same height
            ForEach(0 ..< 6) { index in
                VStack …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

2
推荐指数
1
解决办法
735
查看次数