gpt4 book ai didi

C++ 方法包装 Objective-C : how to add value to variable?

转载 作者:行者123 更新时间:2023-11-28 07:05:48 25 4
gpt4 key购买 nike

好的,这是一个完全菜鸟的问题:

我有简单的 C++ 方法:

 void Tray::IconPos(const std::string& iconpos) {
NSRect rect = [[[status_item_ view] window] frame];
iconpos = [NSString stringWithFormat: @"%f,%f", rect.origin.x, rect.origin.y];
}

我希望 std::string& iconpos 获得这个:[NSString stringWithFormat: @"%f,%f", rect.origin.x, rect.origin.y] 值。

我该怎么做?

忍者给我:

tray_mac.mm:72:11: error: no viable overloaded '='
iconpos = [NSString stringWithFormat: @"%f,%f", rect.origin.x, rect.origin.y];
~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最佳答案

首先,如果您要将 NSRect 转换为 NSString,您可能需要 NSStringFromRect

但是,如果您想自己将其格式化为 std::string,那么为什么要将其转换为 NSString 只是为了再次将其转换为 std::string?

其次,您正在尝试分配给 iconpos,它是对 const std::string 的引用。你就是不能那样做。

如果你想从 NSString 转换为 std::string 你需要通过一个普通的 C 字符串,使用 NSString 方法 cStringUsingEncoding:

但是,无论你做什么,都不能给iconpos赋值,因为它是对常量对象的引用。

关于C++ 方法包装 Objective-C : how to add value to variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com