当我将它上传到我的实际设备(iphone和iPad)时,我遇到了在iOS和Xcode上测试我的应用程序的问题,我想知道是否有人知道这个问题并且可以帮助我:
通常,当我在我的设备上构建我的应用程序时,应用程序将在我的设备上安装并启动.但是当我准备提交我的第一个应用程序时,我正在测试并更改Bundle Identifier,App ID和Development Provisions(因此问题可能与它有关),现在,当我尝试构建我的应用程序时我的设备,虽然它在我的设备上安装得很好,Xcode将不再启动应用程序.相反,我收到此错误消息:
启动可执行文件时出错.启动远程程序时出错:没有此类文件或目录.
有谁知道这是什么问题?这个派生数据文件夹是关于什么的?
非常感谢!
这个问题的标题可能有点奇怪,但事实是,据我所知,根本没有什么可以反对尾部调用优化.但是,在浏览开源项目时,我已经遇到了一些主动尝试阻止编译器进行尾调用优化的函数,例如CFRunLoopRef的实现,这些函数充满了这样的黑客攻击.例如:
static void __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__() __attribute__((noinline));
static void __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__(CFRunLoopObserverCallBack func, CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info) {
if (func) {
func(observer, activity, info);
}
getpid(); // thwart tail-call optimization
}
Run Code Online (Sandbox Code Playgroud)
我很想知道为什么这看起来如此重要,有没有我作为一个普通的开发人员应该保持这种想法呢?例如.尾调用优化有常见的陷阱吗?
c c++ optimization compiler-optimization tail-call-optimization
有没有办法检查a NSWindow是否可见?一旦我的应用程序的第一个窗口变为可见,我想显示一个工作表控制器(10.7上的动画结束,用户可以看到窗口!).如果我只是显示工作表windowDidLoad,它会导致一个看起来很愚蠢的动画(工作表翻出,窗口从后面弹出).我知道这NSWindowDelegate提供了两个方法,当窗口成为关键窗口或主窗口时调用,但是,这并不意味着窗口当时已经完全可见.这在Lion上更加引人注目,其中Windows倾向于弹出这个愚蠢的动画.
通过浏览Sphinx 的C和C++域,它似乎没有原始支持来记录枚举(以及更少的匿名枚举).截至目前,我cpp:type::用于枚举类型,然后是所有可能值及其描述的列表,但这似乎不是处理它的理想方式,特别是因为它使得引用某些值很痛苦(或者我仅引用类型,或在值前添加额外的标记).
有一个更好的方法吗?我将如何处理匿名枚举?
好吧,我已经看到了类似的问题,但我还没有找到一个令人满意的解决方案,所以我开了一个新的.问题是Gradle生成了疯狂的长文件路径,超过了Windows上的240路径限制.问题是,一旦arm-linux-androideabi-ar运行我得到这样的错误:
arm-linux-androideabi-ar: C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/[redacted]/D_/[redacted]/android/[redacted]_ATC/src/main/jni/__/__/__/__/[redacted]/src/main/jni/__/__/__/__/__/source_code/app/missions/mission_utils/mission_data/mission_difficulty.o: No such file or directory
make: *** [C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/lib[redacted].a] Error 1
Run Code Online (Sandbox Code Playgroud)
我已经buildDir将gradle项目更改为C:/ tmp并尽可能多地删除它.我还将项目本身移动到驱动器的根目录,以及启用Windows 10长路径,这是我找到的唯一建议.然而,看着路,才像摇篮变成..INT __,而不是把它变成一个真正的路径,这样的路径,文件也可以同样是:
C:/tmp/ATC/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/[redacted]/D_/[redacted]/android/[redacted]_ATC/source_code/app/missions/mission_utils/mission_data/mission_difficulty.o
仍然是一个字符串,让我感到疯狂,但它暂时会解决我的问题.是否有可能说服Gradle生成这些路径?还有什么我可以做的吗?视窗10长路径的支持是已启用
我有一个16x16像素的图像,我想在UIImageView中显示.到目前为止,没问题,但是16x16有点小,所以我想将图像视图调整为32x32,从而也可以将图像缩放.但我不能让它工作,无论我尝试什么,它总是以16x16显示图像.我搜索了很多,并在Stack Overflow上发现了很多片段,但它仍然不起作用.到目前为止,这是我的代码:
[[cell.imageView layer] setMagnificationFilter:kCAFilterNearest];
[cell.imageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[cell.imageView setClipsToBounds:NO];
[cell.imageView setFrame:CGRectMake(0, 0, 32, 32)];
[cell.imageView setBounds:CGRectMake(0, 0, 32, 32)];
[cell.imageView setImage:image];
Run Code Online (Sandbox Code Playgroud)
我不想创建一个新的32x32像素图像,因为我已经在旧设备上有一些内存问题并且创建了两个图像而不是只有一个看起来像我的非常糟糕的方法(图像可以完美缩放,它不会'无论质量如何都很重要).
在使用Apple服务器验证Apple IOS应用内购买收据时,我们的一些交易返回:
{"status":21002,"exception":"java.lang.NumberFormatException"}
Run Code Online (Sandbox Code Playgroud)
我可以知道问题的原因是什么吗?我们已按照Apple In-App购买指南进行操作,即我们将从iOS客户端使用Base 64编码应用商店退货收据,然后发送收据以进行验证
注意:我们的大多数交易确实经历过,大约有10%的交易存在上述错误
我正在尝试接收鼠标的输入报告(用包裹IOHIDDeviceRef),但是对于我来说,我似乎无法在macOS 10.12上使用它。相同的代码在10.11和10.10中都可以正常工作,并且对所有其他类型的HID输入设备(键盘,游戏手柄和操纵杆)都适用。
我已经尝试了多种方法,但是无论如何,我只是没有收到任何输入事件。我试过了:
IOHIDDeviceRegisterInputReportCallback和IOHIDDeviceRegisterInputValueCallback(),因为它们是接收日期的最直接的方法。另外,我尝试创建一个添加IOHIDQueueRef了所有IOHIDElement鼠标的的。
这些方法都不能解决问题。如前所述,该代码确实适用于其他输入设备,因此我确定自己正确设置了99.999%。我打开通过IOHIDDeviceOpen(device, kIOHIDOptionsTypeNone)它返回的设备kIOReturnSuccess。我将设备安排在具有kCFRunLoopCommonModes模式的主运行循环中。在IOHIDQueueRefI 的情况下,我还将那个注册到运行循环并调用IOHIDQueueStart()。同样值得注意的是:该代码曾经在10.10和10.11上运行,只是停止了10.12的工作。
我在这里做错了,还是macOS 10.12不再支持此功能?
这是一个最小的repro示例(为样板鳕鱼道歉),它将与键盘和鼠标设备匹配并随后打开。但是,它只会为键盘产生输入值,鼠标不会在10.12上报告任何内容:
#include <iostream>
#include <IOKit/hid/IOHIDLib.h>
void HIDDeviceValueReceived(__unused void *context, __unused IOReturn result, void *sender, __unused IOHIDValueRef value)
{
std::cout << "Received IOHIDValue from " << sender << std::endl;
}
void HIDDeviceMatched(__unused void *context, __unused IOReturn result, __unused void *sender, IOHIDDeviceRef deviceRef)
{
CFNumberRef usagePageValue = (CFNumberRef)IOHIDDeviceGetProperty(deviceRef, CFSTR(kIOHIDPrimaryUsagePageKey));
CFNumberRef usageValue = (CFNumberRef)IOHIDDeviceGetProperty(deviceRef, CFSTR(kIOHIDPrimaryUsageKey)); …Run Code Online (Sandbox Code Playgroud) 我目前正在研究一个NSProxy拦截某些消息的子类,并且从不将它们转发给任何人,只是处理它们,所以这些方法从未真正存在过.而这里出现了问题,显然编译器开始抱怨缺少方法实现,我无法弄清楚如何阻止它,向接口添加存根方法只是为了让编译器关闭不起作用因为方法是任意形成的,我不知道它们(为了使它更具体,我要求这个项目).
理想情况下,我想告诉编译器它根本不应该对这个特定的类进行任何方法检查,但是因为这似乎不太可能,我也很乐意以某种方式#pragma或任何其他方式(不包括关闭编译整个项目/文件中的每个警告!)