【发布时间】:2010-06-23 04:22:34
【问题描述】:
我有一个应用程序自一年多前推出以来一直运行良好。
我最初是用 iphone iOS 2.2.1 开发的,经过测试,一直销售到 3.2 都没有问题。
现在它无法在 iOS4 上启动。
该应用程序对 UIPickerView 使用了非标准尺寸(我认为这不是问题,但只需提及它,因为您会在控制台输出中看到一些抱怨)。它还提供以前未报告的NSAutoreleasePool 警告。
但罪魁祸首似乎是在将界面调整为新的 iphone 屏幕分辨率时(至少我从控制台得到的)
我知道我必须自己做一些研究,但 iOS4 推出的时间太少了,我一直非常专注于学习和开发我的第一个 android 应用程序(所以我没有测试这个特定的代码,一年后+这个应用程序每天只销售几份),我认为在这里询问是否有人有一些信息或已经遇到过它并没有害处。
首先,这是使用 XCODE 3.2.3 和 BASE SDK 3.2 构建和运行时的控制台输出,运行没有问题
2010-06-22 23:25:55.619 metalandmaterials[82956:207] ******* 辅助功能状态已更改:开启 2010-06-22 23:25:55.710 金属和材料[82956:207] ********** 为:xxxxxxxxx 加载 AX
但尝试使用 iOS4 运行它会带来这种美感:
2010-06-22 23:15:52.488 metalandmaterials[80149:207] ******* 辅助功能状态已更改:开启
2010-06-22 23:15:52.546 金属和材料[80149:207] ********** 为:XXXXXXX ************
加载 AX 2010-06-22 23:15:53.003 metalandmaterials[80149:207] * -[NSAutoreleasePool release]: 这个池已经被释放了,不要排空它(双释放)。
2010-06-22 23:15:53.005 metalandmaterials[80149:207] * -[NSAutoreleasePool release]: 这个池已经被释放了,不要排空它(双释放)。
2010-06-22 23:15:53.008 metalandmaterials[80149:207]-[UIPickerView setFrame:]:无效高度值 50.0 固定到 162.0
就在这里! [UIIageView 比例]
2010-06-22 23:15:53.011 metalandmaterials[80149:207] -[UIImageView scale]:无法识别的选择器发送到实例 0x5ac47a0
2010-06-22 23:15:53.013 metalandmaterials[80149:207] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIImageView 比例]:无法识别的选择器发送到实例 0x5ac47a0”第一次抛出时调用堆栈:
(
0 CoreFoundation 0x025f5919 异常预处理 + 185
1 libobjc.A.dylib 0x027435de objc_exception_throw + 47
2 CoreFoundation 0x025f742b -[NSObject(NSObject) 不识别选择器:] + 187
3 核心基础 0x02567116 ___forwarding_ + 966
4 核心基础 0x02566cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x0039a8e3 -[UIImageView setImage:] + 250
6 UIKit 0x0039b63e -[UIImageView initWithImage:] + 161
7 UIKit 0x05f286ce -[UIImageViewAccessibility(SafeCategory) initWithImage:] + 70
8 金属和材料 0x0000bf09 -[TVCResults init] + 1841
9 金属和材料 0x00002b8c -[UIVCalcHolder init] + 258
10 金属和材料 0x00002758 -[CalcTestAppDelegate applicationDidFinishLaunching:] + 649
11 UIKit 0x002d759c -[UIApplication_callInitializationDelegatesForURL:payload:suspended:] + 1252
12 UIKit 0x002d99a1 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 346
13 UIKit 0x002e3452 -[UIApplication handleEvent:withNewEvent:] + 1958
14 UIKit 0x002dc074 -[UIApplication sendEvent:] + 71
15 UIKit 0x002e0ac4 _UIApplicationHandleEvent + 7495
16 图形服务 0x02de1afa PurpleEventCallback + 1578
17 核心基础 0x025d6dc4 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52
18 核心基础 0x02537737 __CFRunLoopDoSource1 + 215
19 核心基础 0x025349c3 __CFRunLoopRun + 979
20 核心基础 0x02534280 CFRunLoopRunSpecific + 208
21 核心基础 0x025341a1 CFRunLoopRunInMode + 97
22 UIKit 0x002d9226 -[UIApplication_run] + 625
23 UIKit 0x002e4b58 UIApplicationMain + 1160
24 金属和材料 0x000024ac 主要 + 230
25 金属和材料 0x000023bd 开始 + 53
26 ??? 0x00000001 0x0 + 1
) 在抛出“NSException”实例后调用终止
节目接收信号:“SIGABRT”。
杀
杀了
所以这个scale 方法对uiimageview 来说是新的吗?为什么它不起作用?有人遇到过这个吗?
非常感谢任何帮助
最好的问候
大卫
【问题讨论】:
-
这听起来绝对像是您应该向 Apple 提交错误报告的事情:developer.apple.com/bugreporter 他们确实很快就能解决这些问题。
-
我在 API Diff 中看到的关于规模的唯一内容是:developer.apple.com/iphone/library/documentation/UIKit/…
-
阿德里安,会的。大卫,现在会读但是我刚刚做了一个快速而肮脏的修复, - 创建了一个 MYUIImageView : UIImageView - 添加了一个 -(void)scale 方法,它什么都不做 - 将 UIImageViews 替换为 MYUIImageView 至少它可以工作我会填写一份报告并离开这个问题开放几天,以防其他人想贡献(可能会帮助其他人遇到这个问题)。我对解决此问题的兴趣主要与支持已经购买该应用程序的人有关。到目前为止,它不会产生任何值得花太多时间思考的收入。
标签: iphone uiimageview scale ios4 nsautoreleasepool