小编Hua*_*ham的帖子

从 Swift 访问 C++ 枚举

我正在尝试enum从 Swift访问用 C++ 标头编写的 值。具体来说,我enum在 OpenCV 的 hpp 头文件中有这个,我想将其值公开给 Swift。我试图在 Swift 和 Objective-C 之间设置一个桥接头,并在我想公开的 C++ 枚举值周围放置一个包装器,但编译器对此并不满意:

imgproc.hpp:C++ 头文件

enum ThresholdTypes {
    THRESH_BINARY     = 0,
    THRESH_BINARY_INV = 1,
    THRESH_TRUNC      = 2, 
    ...
};
Run Code Online (Sandbox Code Playgroud)

桥接头

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

OpenCVWrapper.h:我的 Objective-C Wrapper 类要暴露给 Swift

#ifdef __cplusplus
#import <opencv2/core.hpp>
#import <opencv2/imgproc.hpp>
#endif

#import <Foundation/Foundation.h>

@interface OpenCVWrapper : NSObject

typedef enum {
    Binary = cv::THRESH_BINARY,  // ERROR: use of undeclared identifier `cv`
    BinaryInv = cv::THRESH_BINARY_INV  // ERROR: use of …
Run Code Online (Sandbox Code Playgroud)

c++ enums objective-c swift bridging-header

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

为什么操作队列中不需要[weak self]或[unowned self]?

在了解了Swift 的捕获列表以及如何使用它来避免保留循环之后,我不禁注意到一些令人费解的事情OperationQueue:它不需要[weak self]或 来[unowned self]防止内存泄漏。

class SomeManager {
    let queue = OperationQueue()
    let cache: NSCache = { () -> NSCache<AnyObject, AnyObject> in
        let cache = NSCache<AnyObject, AnyObject>()
        cache.name = "huaTham.TestOperationQueueRetainCycle.someManager.cache"
        cache.countLimit = 16
        return cache
    }()

    func addTask(a: Int) {
        queue.addOperation { // "[unowned self] in" not needed?
            self.cache.setObject(a as AnyObject, forKey: a as AnyObject)
            print("hello \(a)")
        }
    }
}

class ViewController: UIViewController {

    var someM: SomeManager? = SomeManager()

    override func viewDidLoad() …
Run Code Online (Sandbox Code Playgroud)

memory-leaks nsoperationqueue automatic-ref-counting retain-cycle swift

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

模板图像不会在启动屏幕故事板上着色

我正在设置带故事板的启动屏幕,我正在使用设置为PDF模板图像的图像.我的目标是UIImageView通过Interface Builder 将此图像放入并为其设置色调.

如果我在我的图像视图中有这样的图像视图,这种方法可以正常工作Main.storyboard,但不知何故,LaunchScreen.storyboard图像不会被着色并呈现PDF上呈现的实际颜色.

我在网上查看了有关信息,但没有找到关于在启动屏幕上正确使用模板图像的更多信息.

是否在启动屏幕上使用色调颜色?如果是,那么设置它的适当方法是什么?

interface-builder uiimageview ios launch-screen

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

UI 测试:当嵌套在表格视图单元格中时滑块无法调整

在UI测试上的Xcode 9.0(9A235),与之交互UISlideradjust(toNormalizedSliderPosition:)时不工作在所有UISlider嵌套在UITableViewCell

我已经在许多不同的场景中进行了测试: - Normal UISliders 没有嵌入到UITableView使用该adjust方法的工作中。-UISlider与 a 共存UITableView但不在 Table View Cell 内继续使用adjust -UISlider在 aUITableView中可以唯一标识。-UISlider在 a 中识别UITableView可以响应简单的事件,例如tap() -UISlider在 aUITableView中识别根本不适用于adjust方法,即使我将行数修改为 1。错误消息是:

获取元素 pid 的属性失败:24415,elementOrHash.elementID:106102876671744.43:错误域=XCTDaemonErrorDomain 代码=13“获取属性 5011 的值返回 AX 错误 -25205。” UserInfo={NSLocalizedDescription=获取属性 5011 的值返回 AX 错误 -25205。}

我在网上找到的相关讨论:https : //forums.developer.apple.com/thread/77445

如果有人有兴趣查看它,我也已将我的代码上传到网上

我已经就此向 …

tableview uislider ios swift xcode-ui-testing

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