我的应用程序崩溃,我需要一些建议来找到并解决问题.它不是设备或电缆问题,因为它发生在所有设备上,而不仅仅是在调试时.Xcode不会在异常断点处停止,应用程序只是停止运行而没有错误信息.调试时,xcode只显示"丢失与X的iPhone的连接".我有来自设备的以下日志,请参阅MY_CRASHING_APP:
Incident Identifier: 85730E97-BA21-4C72-8AD1-02075A8FD9A7
CrashReporter Key: d9e9eb14ac1801fea11e662a394244d7caf29154
Hardware Model: iPhone4,1
OS Version: iPhone OS 8.0 (12A365)
Kernel Version: Darwin Kernel Version 14.0.0: Tue Aug 19 15:08:02 PDT 2014; root:xnu-2783.1.72~8/RELEASE_ARM_S5L8940X
Date: 2014-09-24 15:02:41 +0200
Time since snapshot: 325 ms
Free pages: 20793
Active pages: 20412
Inactive pages: 10678
Speculative pages: 1757
Throttled pages: 55906
Purgeable pages: 699
Wired pages: 21196
File-backed pages: 30263
Anonymous pages: 2584
Compressions: 76385
Decompressions: 3948
Compressor Size: 81
Uncompressed Pages in Compressor: 61
Page Size: 4096 …Run Code Online (Sandbox Code Playgroud) 我们遇到的问题是,我们的应用更新定期显示的方式比实际应用更大(使用应用程序细化).
请参阅附带的屏幕截图:
是什么导致这个?
屏幕截图是在iOS 9设备上拍摄的.但在iOS 8上也可以观察到相同的情况.
我也看到其他应用程序的差异,但通常只有几MB.
应用尺寸:
更新大小:
假设您有以下课程:
class A {
private Foo foo = new Foo();
Foo getFoo() {
return foo; //foo.clone()?
}
void modifyFoo() {
//modify this.foo
//...
}
}
Run Code Online (Sandbox Code Playgroud)
我想允许:
getFoo()modifyFoo(),getFoo()执行其后的其他新调用,直到修改完成.Java中是否存在针对此问题的类,或者我是否必须实现它?如果我必须实现它,那么我该如何实现它以确保线程安全?
我使用以下代码在我的应用程序中自定义导航栏上的后退按钮:
UIImage *backButton = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage *backButtonOn = [[UIImage imageNamed:@"backButton_on"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonOn
forState:UIControlStateHighlighted
barMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
它工作得很好,除非我呈现UIImagePickerController并在照片库中输入相册,后退按钮也是自定义后退按钮.如何取回图像选择器中的原始后退按钮?
我有以下简单的代码:
class A
{
int a;
public:
A(int a) : a(a) { cout << "Constructor a=" << a << endl; }
~A() { cout << "Destructor a=" << a << endl; }
void print() { cout << "Print a=" << a << endl; }
};
void f()
{
A a(1);
a.print();
a = A(2);
a.print();
}
int main()
{
f();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Constructor a=1
Print a=1
Constructor a=2
Destructor a=2
Print a=2
Destructor a=2
Run Code Online (Sandbox Code Playgroud)
我发现有两个析构函数调用with a=2和none,a=1 …
ios ×3
iphone ×2
app-store ×1
app-thinning ×1
back-button ×1
c++ ×1
constructor ×1
crash ×1
destructor ×1
java ×1
size ×1
uiappearance ×1
xcode ×1