小编Ben*_*ter的帖子

在将Swift桥接到React-Native时,"不是一个公认的Objective-C方法"

我正在尝试将我的React-Native 0.33代码桥接到一个超级简单的Swift方法,遵循本指南,但我得到的只是show:(NSString *)name is not a recognized Objective-C method.

这是我的代码:

SwitchManager.swift

import Foundation

@objc(SwitchManager)
class SwitchManager: NSObject {

  @objc func show(name: String) -> Void {
    NSLog("%@", name);
  }

}
Run Code Online (Sandbox Code Playgroud)

SwitchManagerBridge.h

#import "RCTBridgeModule.h"

@interface RCT_EXTERN_MODULE(SwitchManager, NSObject)

RCT_EXTERN_METHOD(show:(NSString *)name)

@end
Run Code Online (Sandbox Code Playgroud)

SwitchManager桥接,Header.h

#import "RCTBridgeModule.h"
Run Code Online (Sandbox Code Playgroud)

然后在我的index.ios.js文件中我正在导入SwitchManager import { SwitchManager } from 'NativeModules';并调用SwitchManager.show('One');.这是错误发生的地方.

不确定是什么问题.

objective-c reactjs swift react-native

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

仅限Chrome中的超慢速预检OPTIONS

最近我一直在努力解决Chrome中出现的一个非常奇怪的问题:由于我的API(NodeJS)位于不同的子域,我需要使用CORS从我的前端(EmberJS)到达它.

它工作得很好,但我经常(95%的时间)拥有非常慢的OPTIONS查询,将任何API调用延迟大约3秒.

2个请求,OPTIONS需要3秒

大部分时间花在下载空内容上:

下载空内容需要3秒钟

当我在另一个使用类似架构制作的网站上尝试这个时,它会变得更奇怪,遇到完全相同的问题.

我试过的其他一些事情:

  • 我一直在尝试使用Firefox和Safari,并且没有任何延迟.
  • 我一直在本地或生产中尝试这种方法,试验同样的延迟.
  • 我一直在用隐身模式(没有扩展名)尝试这个,我有完全相同的问题.

我们在后端NodeJS上使用CORS包.

现在,我不知道问题出在Chrome 60,NodeJS,CORS包还是EmberJS + jQuery上.

有没有人经历过这个?

jquery google-chrome node.js cors ember.js

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

Google跟踪代码管理器和单页应用

我正在尝试将Google跟踪代码管理器与我的Ember应用程序集成.我很难理解如何通知GTM页面已更改,并发送页面查看事件.

我在线阅读了很多东西,主要是为"虚拟页面"创建一个新变量,但显然这远非理想.

我希望能够dataLayer.push用来通知实际更改的页面.有没有一个简单的方法我没有找到,或者在SPA上跟踪GTM真的很痛苦?

google-tag-manager

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

将主键与Ember数据一起使用

过去几天我一直在用主键和最后一个版本的Ember Data 苦苦挣扎.

我首先阅读了如何在GitHub上的Breaking Changes文件中执行此操作,但它显然已经过时了.我尝试 其他 几种方法(借助Peter Wagenet在IRC上的帮助),但它们似乎都没有用.

我想slug在我的模型上制作我的主键,而且由于我正在使用MongoDB,我想用_id而不是id.

有没有人想出怎么做?我的根本问题是当我App.MyModel.find()在模型上做几个时,模型记录被加载两次.

ember.js ember-data

14
推荐指数
1
解决办法
5586
查看次数

小胡子+嵌套对象

我正在尝试从标签列表中创建一个树,其中包含标签.

这是我正在使用的JSON示例:

{
  "tags":
  [{"name":"My first tag",
    "tags":
    [{"name":"My first tag inside a tag"},
     {"name":"My second tag inside a tag"}]
  }]
}
Run Code Online (Sandbox Code Playgroud)

如果我使用以下胡子模板,它会显示"我的第一个标签",没有任何问题:

<ul>
{{#tags}}
<li tag-id="{{id}}">
  {{name}}
</li>
{{/tags}}
</ul>
Run Code Online (Sandbox Code Playgroud)

但是,使用以下模板,我试图在第一个标签内显示标签:

<ul>
{{#tags}}
<li tag-id="{{id}}">
  {{name}}
  <div>
  {{#tags}}
    <a>{{name}}</a>
  {{/tags}}
  </div>
</li>
{{/tags}}
</ul>
Run Code Online (Sandbox Code Playgroud)

使用此模板,Mustache不会呈现任何内容.

如何使用Mustache显示嵌套列表?

javascript templates mustache

6
推荐指数
1
解决办法
4281
查看次数

在react-native上设置属性时"无法识别的选择器发送到实例"

我正在尝试将我的Swift视图与我的React-Native项目相关联.我想出了如何显示它,但现在当我尝试设置属性时,我收到此错误消息:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Switch setMessage:]: unrecognized selector sent to instance 0x7f96b270de70'
Run Code Online (Sandbox Code Playgroud)

在我的react-native代码中,我正在做:

const SwitchNative = requireNativeComponent('Switch', Switch);

class Switch extends Component {
  render() {
    return (
        <SwitchNative message="message will be" style={this.props.style} />
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的SwiftBridge中执行此操作:

// SwiftBridge.h

#import "RCTView.h"

@interface SwitchBridge : RCTView

  @property (nonatomic, assign) NSString *message;

@end

// SwiftBridge.m

#import "RCTBridgeModule.h"
#import "RCTViewManager.h"
#import "SwitchBridge.h"

@interface RCT_EXTERN_MODULE(SwitchManager, RCTViewManager)

  RCT_EXPORT_VIEW_PROPERTY(message, NSString)

@end
Run Code Online (Sandbox Code Playgroud)

最后我在Swift课程中有这个Switch.swift:

...
public func …
Run Code Online (Sandbox Code Playgroud)

ios reactjs swift react-native

3
推荐指数
1
解决办法
4708
查看次数

修剪 UIImage 白色边框

我找不到一种方法来裁剪包含白色边框的图像。

要裁剪的图像

目前它是一个 UIImage,我尝试了一些解决方案,例如UIImage+TrimCKImageAddons,但这些库不起作用。我认为部分问题是由于图像压缩,边框不是完全白色(我认为)。

有人找到解决方案吗?

谢谢,

trim objective-c uiimage ios

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