Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;方法C:如何为变量添加值?_C++_Objective C_Webkit_Node Webkit - Fatal编程技术网

C++ C++;方法C:如何为变量添加值?

C++ C++;方法C:如何为变量添加值?,c++,objective-c,webkit,node-webkit,C++,Objective C,Webkit,Node Webkit,好的,这是一个完全没有问题的问题: 我有简单的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获

好的,这是一个完全没有问题的问题:

我有简单的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];
~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

您应该尝试以下方法:

iconpos = [[NSString stringWithFormat: @"%f,%f", rect.origin.x, rect.origin.y] UTF8String];

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

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

第二,您正试图分配给
iconpos
,这是对const std::string的引用。你不能那样做

如果要从
NSString
转换为
std::string
,则需要使用
NSString
方法
cStringUsingEncoding:
检查常规C字符串


但是,无论您做什么,都不能将其分配给iconpos,因为它是对常量对象的引用。

仍然是相同的错误:-(
。/../content/nw/src/api/tray/tray\u mac.mm:72:11:错误:没有可行的重载“=”iconpos=[[NSStringWithFormat:@%f,%f],rect.origin.x,rect.origin.y]UTF8String];~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/code>这个怎么样:
iconpos分配([[NSSTRINGWithFormat:@%f],%f],rect.origin.x,rect.origin.origin;
。/../content/nw/src/api/tray/tray\u mac.mm:73:11:错误:没有匹配的成员函数用于调用'assign'iconpos.assign([[NSString stringWithFormat:@“%f,%f”,rect.origin.x,rect.origin.y]UTF8String])~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/MacOSX.platform/Developer/sdk/MacOSX10.8.sdk/usr/include/c++/4.2.1/bits/basic\u string.h:927:7:注意:候选函数不可行:“此”参数的类型为“const std::string”(也称为“const basic\u string”),但方法未标记为const assign(const CharT*\u s)^1生成错误。ninja:build stopped:子命令失败。
正如Jody Hagins指出的,您正在尝试分配一个常量引用。请从标头声明中删除“const”。