当我使用iconv从UTF16转换为UTF8时,一切都很好,反之亦然,它不起作用.我有这些文件:
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
Run Code Online (Sandbox Code Playgroud)
编辑器中的文本看起来没问题.当我运行这个:
iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16.strings
Run Code Online (Sandbox Code Playgroud)
然后我得到这个结果:
b-16.strings: data
a-16.strings: Little-endian UTF-16 Unicode c program text
a-8.strings: UTF-8 Unicode c program text, with very long lines
Run Code Online (Sandbox Code Playgroud)
该file实用程序不显示预期的文件格式,并且文本在编辑器中也不好看.可能是iconv无法创建正确的BOM吗?我在MAC命令行上运行它.
为什么b-16不是正确的UTF-16LE格式?还有另一种方法将utf8转换为utf16吗?
下面将详细阐述.
$ iconv -f UTF-8 -t UTF-16LE a-8.strings > b-16le-BAD-fromUTF8.strings
$ iconv -f UTF-8 -t UTF-16 a-8.strings > b-16be.strings
$ iconv -f UTF-16 -t UTF-16LE b-16be.strings > b-16le-BAD-fromUTF16BE.strings
$ …Run Code Online (Sandbox Code Playgroud) 嗨,大家好,
如果我在控制器的视图中创建NSTextField,那么一切都很好 - 该字段是可编辑的.不幸的是,我必须在新的自定义NSWindow中创建NSTextField.我的代码产生一个看起来没有焦点的字段(文本选择是灰色的)并且不可编辑(没有光标,也没有对键击的反应).我可以用鼠标改变文本选择,但这就是全部.
我是否必须让NSWindow接收击键?
感谢你的帮助, - 约瑟夫
NSRect windowRect = [[self.window contentView] frame] ;
NSWindow* uiWindow = [[NSWindow alloc] initWithContentRect:windowRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered defer:YES];
[uiWindow setBackgroundColor: [NSColor redColor/*clearColor*/]];
[uiWindow setOpaque:NO];
NSView* uiView = [[[NSView alloc] initWithFrame:NSMakeRect(0, 0, windowRect.size.width, windowRect.size.height)] autorelease];
[uiView translateOriginToPoint:NSMakePoint(100, uiView.bounds.size.height/2)];
uiView.wantsLayer = YES;
[uiWindow setContentView:uiView];
NSTextField *textField;
textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 800, 80)];
[textField setFont:[NSFont fontWithName:@"Helvetica Bold" size:60]];
[textField setStringValue:@"My Label"];
[textField setBezeled:YES];
[textField setDrawsBackground:YES];
[textField setEditable:YES];
[textField setSelectable:YES];
[textField setEnabled:YES];
[uiView addSubview:textField];
// THIS …Run Code Online (Sandbox Code Playgroud) 我尝试将AdMob广告和GooglePlay IAP集成到干净的(hello world)cocos2d-js 3.5项目中.
偶尔(每5次运行)应用程序崩溃并显示下面的异常.当我集成IAP时,这种行为就开始了.清洁AdMob集成很好(或者至少被认为是).
到目前为止,我只做了Java部分(除主屏幕外没有调用cocos代码).我确实将google-play-services_lib升级到23版.
日志转储:
E/AndroidRuntime(27040): java.lang.IllegalArgumentException: null reference
E/AndroidRuntime(27040): at com.google.android.gms.common.internal.d.b(SourceFile:45)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.g.ao.a(SourceFile:60)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.t.b.a(SourceFile:766)
E/AndroidRuntime(27040): at com.google.android.gms.ads.internal.t.m.run(SourceFile:43)
E/AndroidRuntime(27040): at android.os.Handler.handleCallback(Handler.java:733)
E/AndroidRuntime(27040): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(27040): at android.os.Looper.loop(Looper.java:149)
E/AndroidRuntime(27040): at android.app.ActivityThread.main(ActivityThread.java:5257)
E/AndroidRuntime(27040): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27040): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(27040): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
E/AndroidRuntime(27040): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
E/AndroidRuntime(27040): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
任何提示?如果您发现它有用,我可以发布一些代码片段...
更新:
德米特里提到,这可能是谷歌方面的错误.我可以在崩溃前看到这些安全警告.它表明导致广告的错误是"坦克世界"
W/Ads (21547): JS: The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from http://lh3.googleusercontent.com/mTcg18XIu-LbM4ovcCpet1zMpdkt1QKIZpM7RhdBpH7fjlLFvSRn56yxbh3i92FiHmjLx54rCg.
W/Ads (21547): (https://googleads.g.doubleclick.net/mads/gma:0)
I/chromium(21547): [INFO:CONSOLE(0)] "The page at https://googleads.g.doubleclick.net/mads/gma displayed insecure content from …Run Code Online (Sandbox Code Playgroud) 我正在研究多种类型的地图持有者.它适用于所有原始类型,也适用于结构,例如Point.但是,如果我想将std :: function添加为另一个受支持的类型(用于回调),那么编译器会抱怨:
MT.cpp:426:15:没有可行的重载'='
MT.h:31:7:候选函数(隐式复制赋值运算符)不可行:第一个参数没有从'(lambda at MT.cpp:426:17)'到'const sharkLib :: MT'的已知转换
MT.h:31:7:候选函数(隐式移动赋值运算符)不可行:第一个参数没有从'(lambda at MT.cpp:426:17)'到'sharkLib :: MT'的已知转换
我实际上并不重载=运算符,而是[]使用每个受支持类型的专用构造函数重载.
.H
protected:
map<string,MT> valueMap;
public:
MT (int value);
MT (std::function<void(Ref*)> ccb);
virtual MT& operator[] (const char* key);
Run Code Online (Sandbox Code Playgroud)
的.cpp
MT::MT (int value)
{
this->type = ValueType::intValue;
this->value.int_ = value;
}
MT::MT (std::function<void(Ref*)> value)
{
this->type = ValueType::ccbValue;
this->value.ccb_ = value;
}
MT& MT::operator[] (const char* key)
{
return this->valueMap[key];
}
Run Code Online (Sandbox Code Playgroud)
用法
MT mt;
mt["int"] = 1;
mt["ccb"] = [](Ref *){ CCLOG("Pressed"); …Run Code Online (Sandbox Code Playgroud) 详细的错误描述:
ERROR ITMS-90513:"缺少Info.plist密钥.您的应用程序在'Payload/xxx.app'中的Info.plist必须包含'TVTopShelfImage.TVTopShelfPrimaryImageWide'密钥."
macos ×2
xcode ×2
admob ×1
android ×1
c++ ×1
c++11 ×1
cocoa ×1
cocos2d-js ×1
cocos2d-x ×1
command-line ×1
lambda ×1
linux ×1
objective-c ×1
overloading ×1
tvos ×1
unicode ×1