小编Yuc*_*ong的帖子

将JNI类型转换为本机类型

虽然有关于把一个文件jstring到本地字符串(string nativeString = env->GetStringUTFChars(jStringVariable, NULL);)我找不到这将转换为一个例子jboolean,以一个booljint一个int.

谁能建议如何实现这一目标?

java-native-interface android-ndk

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

框架矩形与对齐矩形的区别

谁能解释之间有什么区别边框矩形对齐矩形大小检查

xcode interface-builder xcode6

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

在“reqwest”中找不到“blocking”

我正在尝试使用reqwest 0.10.0-alpha.2从给定的 URL 下载文本文件,它看起来像一个合适的工具。我的 Cargo.toml 文件中有这个:

[package]
name = "..."
version = "0.1.0"
authors = ["Y*** <y***@***.***>"]
edition = "2019"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
reqwest = "0.10.0-alpha.2"
Run Code Online (Sandbox Code Playgroud)

依赖似乎解决了,我有我的 Cargo.lock 文件。

我从文档中提取这个片段

let body = reqwest::blocking::get("https://www.rust-lang.org")?
    .text()?;

println!("body = {:?}", body);
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

[package]
name = "..."
version = "0.1.0"
authors = ["Y*** <y***@***.***>"]
edition = "2019"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
reqwest = "0.10.0-alpha.2" …
Run Code Online (Sandbox Code Playgroud)

rust reqwest

30
推荐指数
1
解决办法
4894
查看次数

二进制运算符'==='不能应用于'Any?'类型的操作数 和'UIBarButtonItem!'

以下代码以前能够在swift 2.2中编译,不再在swift 3.0中编译.我们如何解决这个问题?

错误:二进制运算符'==='不能应用于'Any?'类型的操作数 和'UIBarButtonItem!'

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if sender === saveButton { // Error!
        // ... 
    } else if sender === closeButton { // Error!
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swift3

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

如何在swift 3中获取当前队列名称

我们在swift 2.2中有这样的函数,用于使用当前运行的线程打印日志消息:

func MyLog(_ message: String) {
    if Thread.isMainThread {
        print("[MyLog]", message)
    } else {
        let queuename = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL))! // Error: Cannot convert value of type '()' to expected argument type 'DispatchQueue?'
        print("[MyLog] [\(queuename)]", message)
    }
}
Run Code Online (Sandbox Code Playgroud)

这些代码不再在swift 3.0中编译.我们现在如何获得队列名称?


问题是如何识别两个线程在同一个线程中的位置:检查Swift 3中是否有正确的调度队列.接受的答案建议用于将setSpecific"标签"与创建的队列相关联.但是,这并不能解决问题,因为我们想知道队列名称.队列可能不一定是由我们自己创建的.

swift swift3

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

如何确定CMake的Boost库名称

我试图找出FindCMakeList.txt中的boost库的组件.

我看了看这个目录/usr/local/include/boost.然后我随机挑选一些文件夹并尝试使用FIND_PACKAGE.以下一切运作良好.

FIND_PACKAGE(Boost COMPONENTS thread system log log_setup
                    signals graph memory_order program_options REQUIRED)
Run Code Online (Sandbox Code Playgroud)

我正在使用的特别之一是property_tree.它无法正常工作并产生以下错误消息:

/Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182(消息)中的CMake错误:

无法找到请求的Boost库.

提升版:1.55.0

Boost包括路径:/ usr/local/include

找不到以下静态Boost库:

    boost_property_tree
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我如何或在哪里可以找到适当的库名称进行提升?

boost cmake

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

cout << std :: ios :: hex有什么作用?

这个问题来自我最近遇到的一个错误.我试图将一些整数值保存为文件为十六进制.举个例子,这就是我应该做的:

cout << std::hex << value << endl;                 // (1)
Run Code Online (Sandbox Code Playgroud)

但是错误的是,我将它用作以下内容:

cout << std::ios::hex << value << endl;            // (2) 
Run Code Online (Sandbox Code Playgroud)

编译器没有抱怨,但显然结果不正确.我随机尝试了几个值,似乎(2)实际上给出了部分正确的结果,除了它附加800作为前缀.我不明白800来自哪里,我在任何地方都看不到好的参考.任何人都能解释一下发生在幕后的事情吗?

cout << std::hex << 255 << endl;       // output: FF
cout << std::ios::hex << 255 << endl;  // output: 800ff

cout << std::hex << 135 << endl;       // output: 87
cout << std::ios::hex << 135 << endl;  // output: 80087

cout << std::hex << 11 << endl;        // output: b
cout << std::ios::hex << 11 …
Run Code Online (Sandbox Code Playgroud)

c++ std

15
推荐指数
3
解决办法
1873
查看次数

忽略使用"warn_unused_result"属性声明的函数的返回值

我们becomeFirstResponder在Objective-C代码中的所有函数调用上开始发出此警告.

忽略使用"warn_unused_result"属性声明的函数的返回值

[self.phoneNumberField becomeFirstResponder]; // warning here!!!
Run Code Online (Sandbox Code Playgroud)

在这里抑制此警告的最佳方法是什么?


编辑:我也试过这个,

BOOL ignore = [self.emailField becomeFirstResponder]; 
Run Code Online (Sandbox Code Playgroud)

但有了这个,Xcode警告有关变量ignore没有使用:(


我也尝试过这个,

BOOL ignore = [self.phoneNumberField becomeFirstResponder];
if (ignore) {

}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,警告消失了.但我认为我甚至无法通过自己的代码审查.太难看了!

objective-c xcode8

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

为什么 Rust 除了 Ord 特征之外还需要 PartialOrd 特征?

我想定义Ord一个自定义类型,以便根据到Advent of Code 2019 day 10 的Point原点的距离进行排序:

impl std::cmp::Ord for Point {
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        let this = self.x * self.x + self.y + self.y;
        let that = other.x * other.x + other.y * other.y;
        return this.cmp(&that);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了这个编译错误:

= 帮助:该特征std::cmp::PartialOrd尚未实现helpers::models::Point

的文档PartialOrd仅解释如何导出实现它。这些都很清楚。

为什么Ord取决于这个?Partial特征名称中的名称意味着什么?什么时候会用到呢?

traits rust

14
推荐指数
0
解决办法
8223
查看次数

委托结构中的初始化程序没有标记为"方便"

我一直收到这个错误,我不明白为什么.

错误:在结构中委派初始化程序没有标记为"方便"

这就是我所拥有的(作为例子),a DeprecatedCurrency和a SupportedCurrency.

struct DeprecatedCurrency {
    let code: String
}

struct SupportedCurrency {
    let code: String
}
Run Code Online (Sandbox Code Playgroud)

然后,我想添加一个便利初始化函数,用于从已弃用的货币对象转换为新的货币对象.这就是我所拥有的:

struct DeprecatedCurrency {
    let code: String
}

struct SupportedCurrency {
    let code: String

    convenience init(_ currecny: DeprecatedCurrency) { // error!!
        self.init(code: currecny.code)
    }

    init(code: String) {
        self.code = code
    }
}
Run Code Online (Sandbox Code Playgroud)

这个错误甚至意味着什么,我该如何解决?


我知道如果我们不提供默认初始化程序,init(code: String)将使用Swift中的struct自动为我们生成带签名的初始化程序.所以到了最后,我真正想要的是(如果可能的话):

struct SupportedCurrency {
    let code: String

    convenience init(_ currecny: DeprecatedCurrency) { // error!!
        self.init(code: currecny.code)
    }
}
Run Code Online (Sandbox Code Playgroud)

swift

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