好了,這是總noob問題:C++方法包裝Objective-C:如何給變量添加值?
我有簡單的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];
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
仍然是一樣的錯誤::-( '../../content/nw/src/api/tray/tray_mac.mm:72:11:error:no viable overloaded'=' iconpos = [[ NSString stringWithFormat:@「%f,%f」,rect.origin.x,rect.origin.y] UTF8String]; ~~~~~~~^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~' –
這個怎麼樣: 'iconpos.assign([[NSString stringWithFormat:@「%f,%f」,rect.origin.x,rect。 [] UTF8String]);'? – Atomix
'../../content/nw/src/api/tray/tray_mac.mm:73:11:錯誤:沒有匹配的成員函數調用'assign' iconpos .assign([[NSString stringWithFormat:@「%f,%f」,rect.origin.x,rect.origin.y] UTF8String]); ~~~~~~~~^~~~~~ /嘛cOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/C++/4.2.1/bits/basic_string.h:927:7:注意:候選函數不可行:'this'參數的類型爲'const std :: string'(又名'const basic_string'),但方法未標記爲const assign(const _CharT * _s) ^ 1生成錯誤。 忍者:建立停止:子命令失敗。# –