我创建了一个iOS应用程序,并希望通过空中分发它.我按照这个指南:
http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad77ea
该应用程序使用企业证书进行签名,并包含分发配置文件.
当我尝试将应用程序下载到ipad上时(使用本指南中描述的技术),屏幕上会出现一个带有我的下载图标的方形图标,名称为"等待...",然后一秒后名称变为我的实际的应用程序名称然后再一次我收到错误消息:
无法下载应用程序
目前无法下载"您的应用程序".
在指南中,有三个疑难解答提示:
如果无线应用程序分发因"无法下载"消息而失败,请检查以下内容:
确保应用程序已正确签名.通过使用iPhone配置实用程序或Apple Configurator将其安装在设备上进行测试,并查看是否发生任何错误.
确保清单文件的链接正确,并且Web用户可以访问清单文件.
确保.ipa文件的URL(在清单文件中)正确,并且Web用户可以访问.ipa文件.
我检查了所有三件事,他们没事.
还有什么可能导致我的下载问题?
为什么下面的代码可以编译通过?
#include <vector>
#include <iostream>
struct Foo {
std::vector<int> bar = {1, 2, 3};
};
int main()
{
Foo foo1;
const Foo& foo2 = foo1;
std::vector<int> target;
std::move(foo2.bar.begin(), foo2.bar.end(), std::back_inserter(target));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
std::move的文档说
在此操作之后,移出范围中的元素仍将包含适当类型的有效值,但不一定与移动之前的值相同。
所以这实际上可以改变对象 foo2,即使它被声明为 const。为什么这有效?
我有一个习惯UIView,可以覆盖一些东西
- (void)drawRect:(CGRect)rect
Run Code Online (Sandbox Code Playgroud)
这工作正常,并在视网膜屏幕上给出了明显的效果.
但是,现在我想使绘图所基于的属性具有动画效果.创建可动画的属性似乎只能在CALayer,因此我不是在绘图中UIView创建自定义CALayer子类并在里面进行绘制
- (void) drawInContext:(CGContextRef)ctx
Run Code Online (Sandbox Code Playgroud)
我在这个函数中使用drawRect了与自定义函数中使用的完全相同的绘图代码UIView.
结果看起来一样 - 然而,它不是视网膜分辨率而是像素化(大方形像素)
如果我放
self.contentsScale = [UIScreen mainScreen].scale;
Run Code Online (Sandbox Code Playgroud)
在我的drawInContext实现开始时,然后取代像素化结果,我得到模糊的结果(好像渲染仍然以非视网膜分辨率执行然后放大到视网膜分辨率).
什么是渲染锐利视网膜路径的正确方法CALayers drawInContext?
这里有一些截图(蓝线是有问题的自定义绘图的一部分.黄色部分只是一个图像)
在自定义UIView中绘制drawRect:

在自定义CALayer中绘制drawInContext:

在自定义CALayer中绘制drawInContext,self.contentScale首先设置:

为了完整性,这里是(一个精简的版本)绘图代码:
//if drawing inside custom UIView sublcass:
- (void)drawRect:(CGRect)rect
{
CGContextRef currenctContext = UIGraphicsGetCurrentContext();
[[UIColor blackColor] set];
CGContextSetLineWidth(currenctContext, _lineWidth);
CGContextSetLineJoin(currenctContext,kCGLineJoinRound);
CGContextMoveToPoint(currenctContext,x1, y1);
CGContextAddLineToPoint(currenctContext,x2, y2);
CGContextStrokePath(currenctContext);
}
//if drawing inside custom CALayer subclass: …Run Code Online (Sandbox Code Playgroud) 当我有一个循环并且在这个循环内创建一个新的堆栈变量(不将它分配在堆上并在循环体内声明它的变量),是否保证在下一次迭代开始之前调用这个对象的析构函数,或者可能编译器展开的循环会改变什么?
我很了解mipmapping.我不明白(在硬件/驱动程序级别)是mipmapping如何提高应用程序的性能(至少这通常是声称).驱动程序在执行片段着色器之前不知道哪个mipmap级别将被访问,所以无论如何所有的mipmap级别都需要存在于VRAM中,或者我错了?
究竟是什么导致了性能提升?
我可以
std::vector<int> a;
a.reserve(1000);
for(int i=0; i<1000; i++)
a.push_back(i);
std::for_each(std::execution::par_unseq, std::begin(a), std::end(a), [&](int i) {
... do something based on i ...
});
Run Code Online (Sandbox Code Playgroud)
但是有没有更优雅的方法来创建 for(int i=0; i<n; i++) 的并行版本,它不需要我先用升序整数填充向量?
如果我将 std::unordered_map::reserve 与参数 n 一起使用,只要插入到映射中的元素少于 n 个,插入到映射中是否能保证不会导致堆分配?
#include <iostream>
struct A {
const int test_;
};
static_assert(std::is_pod<A>::value, "must be POD type");
int main()
{
std::cout<<"Hello World";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在 Clang 和 GCC 上std::is_pod<A>::value是true,而在 ICC 和 MSVC 上是false。
Ifconst int test_;被替换为int test_;or const int* test_then 它也会传递 ICC 和 MSVC。
标准怎么说?
将世界空间中定义的曲面法线转换为屏幕空间法线的正确方法是什么?我不认为它们可以简单地乘以投影矩阵,因为透视划分将事物转换为剪辑空间,据我所知,在这个与图像平面共面的空间平面保持共面.
但是我正在寻找的变换应该导致变换法线,使得图形A中描绘的蓝色世界法线应该导致不同的屏幕空间法线(因为,即使它们的平面与图像平面共面,它们也不会面向相机) - 另一方面,图形B中描绘的法线应该在变换之后(或多或少)相等,因为它们的表面面向相机.

我在寻找什么样的转变?怎么计算呢?
我需要这个用于一些屏幕空间效果.
定义 C++ lambda https://en.cppreference.com/w/cpp/language/lambda时,有一个捕获块捕获封闭范围内变量的值(至少如果变量是通过复制而不是通过捕获)参考)。因此,如果 lambda 使用已捕获的变量并且稍后执行 lambda,则 lambda 内的相应变量将具有定义 lambda 时的值。
使用 JavaScript 箭头函数,我可以引用封闭范围中的变量。但是,当调用箭头函数时,它将使用它现在拥有的变量的值(而不是定义箭头函数时它拥有的值)。
是否存在类似的变量捕获机制,允许使用箭头函数对象存储捕获的变量值?
这是一个 C++ 示例:
// Example program
#include <iostream>
#include <string>
#include <functional>
int main()
{
std::function<void(int)> byCopyCaptures[5];
std::function<void(int)> byRefCaptures[5];
for(int i=0; i<5; i++) {
// The variable i is captured by copy:
byCopyCaptures[i] = [i](int j) {std::cout << "capture by copy: i is " << i << " and j is "<< j <<"\n";};
// The variable i is captured by reference: …Run Code Online (Sandbox Code Playgroud) c++ ×6
ios ×2
3d ×1
c++17 ×1
calayer ×1
destructor ×1
directx ×1
enterprise ×1
javascript ×1
lambda ×1
memory ×1
mipmaps ×1
normals ×1
opengl ×1
over-the-air ×1
performance ×1
projection ×1
retina ×1
space ×1
standards ×1
std ×1