所以我在std :: set上遇到了一个奇怪的迭代器bug:我无法在没有编译错误的迭代器上做一个像(it + 1)这样简单的事情尝试自己编译:
void setBug()
{
std::set<int> values;
for (auto it = values.cbegin();
it != values.cend(); ++it) {
if ((it + 1) != values.end())
values.insert(*it / *(it + 1));
}
}
Run Code Online (Sandbox Code Playgroud)
错误:二进制表达式的无效操作数('std :: _ 1 :: _tree_const_iterator*,long>'和'int')if((it + 1)!= values.end())
错误:二进制表达式的无效操作数('std :: _ 1 :: _tree_const_iterator*,long>'和'int')values.insert(*it/*(it + 1));
编译器版本:Apple LLVM版本5.0(clang-500.2.79)(基于LLVM 3.3svn)目标:x86_64-apple-darwin13.1.0线程模型:posix
我找到了一个肮脏的解决方案:( auto it2 = ++ it; --it)有效,但这真的很脏......
有人解释一下吗?std :: set坏了吗?
谢谢.
我目前正在开发包含Share扩展的iOS应用程序.
我意识到
NSExtensionActivationSupportsImageWithMaxCount
密钥不允许我在Safari下的.jpeg或.png URL("public.image"UTI,kUTTypeImage)上激活我的Share扩展(即:一个imgur链接).
如果我切换到NSActivationRule = TRUEPREDICATE,我仍然可以激活并测试我的扩展,但禁止发布的应用程序.
我填写了一个关于雷达的错误,如果它不被通缉(甚至facebook,twitter等...都没有在这个URL上激活)
现在,我想将下面的键和"public.image"结合在NSPredicate字符串中,如文档所述(https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios .html#// apple_ref/doc/uid/TP40014214-CH21-SW8)
所以我必须将密钥翻译成UTI
到目前为止,我已翻译:
- NSExtensionActivationSupportsFileWithMaxCount
"public.file-url" kUTTTypeFileURL
- NSExtensionActivationSupportsMovieWithMaxCount
"public.movie" kUTTypeMovie
- NSExtensionActivationSupportsText
"public.text" kUTTypeText
- NSExtensionActivationSupportsWebURLWithMaxCount
"public.url"kUTTypeURL
但我找不到类型翻译:
NSExtensionActivationSupportsWebPageWithMaxCount
,"public.HTML"是kUTTypeHTML吗?有人已经在谓词中使用了这个键吗?