以前都用IOS4开发,现在在5下边有些地方会出现Bug,发现的几个贴出来(方便自己以后用),以后再陆续添加,也欢迎大家补充
一、 中文键盘
IOS5中文键盘高度改变(由以前的216变成252),会造成部分输入框被遮挡现象可以用UIKeyboardWillShowNotification(键盘即将弹出通知名称)、UIKeyboardWillHideNotification(键盘即将消失通知)来获得键盘的高度并进行对应的操作
Didload中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShown:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHidden:) name:UIKeyboardWillHideNotification object:nil];
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
[super dealloc];
}
- (void)keyboardWillHidden:(NSNotification*)aNotification
{
}
- (void)keyboardWillShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;//得到键盘的高度
//NSLog(@"当前键盘高度 WillShown %f",kbSize.height);
if (kbSize.height > 220) {
writePostsView.frame = CGRectMake(0, 178, 320, 31);
}
else if (kbSize.height == 216){
writePostsView.frame = CGRectMake(0, 213, 320, 31);
}
}
二、 alert框
IOS4、IOS5 alert对比如图
对于alert中的按钮:ISO4描述为“UIThreePartButton”(不属于[UIButton class]),而IOS5则为“UIAlertButton” (属于[UIButton class]);
并且alert的默认宽度也有所改变
通过版本判断修改
三、 WebView
shouldStartLoadWithRequest方法返回的request转化为string是大小写部分例:String= [[request URL]absoluteString],String中有@“Example”,在IOS4中正常,IOS5则为@“example”
通过版本判断修改
四、[self parentViewController] 返回nil
在IOS4的时候,如果调用parentViewController的时候如果为空,它会一直网上找到顶层的presentingViewController;
但是IOS5就把他们分开了,如果没有parentViewController找到直接返回nil,资讯版中有用到
代码修改如下:
if([selfparentViewController]) {
[[selfparentViewController] dismissModalViewControllerAnimated:YES];
}
else{
[[selfpresentingViewController] dismissModalViewControllerAnimated:YES];
}
或者:
#ifdef __IPHONE_5_0
flipVC = self.presentingViewController;
mainVC = flipVC.presentingViewController;
#else
flipVC = self.parentViewController;
mainVC = flipVC.parentViewController;
#endif
多谢这个帖子中诸位大神的讨论 http://www.cocoachina.com/bbs/read.php?tid=78406&page=1
了解IOS5新特性请参照文档:
https://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS5.html
四、 IOS5中 release 报错
ios5引入了ARC(AutomicReferenceCounting)机制,因此在使用xcode4.2创建项目后,我们再使用release,则编译器则会编译错误
解决方法: 方法1:在创建项目的时候确保选项Automatic Reference Counting 不被选中即可,如果在创建的项目此选项已经选中,则请看方法2;
方法2:关闭ARC功能,在项目属性中将CLANG_ENABLE_OBJC_ARC设置为NO即可。
感谢 Milo ios5 xcode4.2 中 release显示编译错误/警告的解决方法
感谢 Nevermore 对ARC的阐述 ARC(Automatic Reference Counting )技术概述
分享到:
相关推荐
当用户在WebView中浏览含有电话号码(如`tel:`URI)的网页时,iOS系统可能会自动尝试拨打这些号码,这可能并不是用户的预期行为,尤其是在用户无意点击或应用未明确提示的情况下。这一问题在2016年引起了广泛关注,...
在本教程中,我们将深入探讨这个bug的成因以及如何通过JavaScript来修复它。 首先,我们要理解iOS浏览器的渲染机制。在iOS中,Web视图(WebView)默认使用“无延迟滚动”模式,也称为“流体滚动”或“平滑滚动”。...
在描述中,虽然没有提供具体细节,但我们可以推测这个Bug可能允许用户在未经对方许可的情况下进行数据传输,或者突破了常规蓝牙传输的安全限制。这可能会引发隐私和安全问题,因为用户可能无意间暴露个人信息,或者...
总结来说,iOS 11中的这个BUG主要由于UIAlertView与高windowLevel的UIWindow交互不当引起。开发者通过深入理解UIKit的工作原理,成功地定位并解决了问题。在进行iOS应用开发时,特别是涉及到键盘管理和弹窗显示时,...
通过这样的封装,不仅可以提高开发效率,还能减少因支付模块引起的bug,提升应用的整体质量。对于团队来说,统一的接口设计也有利于知识的传递和代码的共享。因此,一个良好的支付组件封装是iOS应用开发中的重要工具...
然而,正如“swift-让iOS10无限黑屏重启”这一问题所指出,不当使用该框架可能导致应用程序崩溃,甚至引起整个iOS系统无限循环地重启和黑屏。这种现象对用户体验造成严重影响,因此开发者需要对UserNotification框架...
iOS11中,一个特定的问题引起了开发者和用户的关注,那就是“图片下拉放大时,信号栏显示白条”的问题。这个问题不仅影响了界面的美观,也可能对用户的操作体验造成困扰。下面我们将详细讨论这个问题及其解决方案。 ...
总的来说,iOS11的断点续传bug主要由`NSURLSession`的`resumeData`结构变化引起,开发者可以通过避免使用`cancelByProducingResumeData:`或手动处理`resumeData`来解决。选择哪种方法取决于具体应用的需求和开发者的...
这个问题是由于iOS8.0.1的某个BUG引起的,苹果在意识到问题后迅速撤回了该更新。由于部分用户已经升级,他们需要采取降级方法来修复他们的iPad3。 降级到iOS8的步骤如下: 1. 首先,你需要下载iOS8的固件镜像文件...
这个驱动包经过优化,删除了与定位服务相关的部分,可能是为了保护用户隐私或者解决特定设备在使用过程中由于定位服务引起的性能问题。在iOS系统中,驱动程序扮演着至关重要的角色,它们是操作系统与硬件之间的桥梁...
在执行`nano_free`时,由于系统bug,可能会导致应用程序意外崩溃,这对用户来说是一次不愉快的体验,同时也对开发者来说是一个需要解决的关键问题。 Swift语言本身并不直接处理`nano_free`,因为这是Cocoa Touch...
经过调查,许多开发者发现在使用Xcode 9和iOS 11的环境中,这个问题可能是由CocoaPods的一个已知bug引起的。CocoaPods是一个流行的iOS依赖管理工具,但它在处理资源编译时可能出现错误,尤其是与应用图标相关的部分...
总结来说,iOS中WKWebView的白屏问题主要由系统版本bug、HTTPS证书认证处理不当以及滚动组件嵌套导致的刷新问题引起。开发者在遇到这些问题时,可以通过版本检测、正确实现证书认证代理方法以及调整页面布局和滚动...
7. **测试与反馈**:在多种设备和iOS版本上进行充分的测试,确保问题在所有情况下都得到解决。如果问题依然存在,可以向Apple官方论坛或者Stack Overflow等社区寻求帮助,或者向Apple提交Bug Report。 通过以上步骤...
这是一个强大的开发工具,提供了一站式解决方案,用于构建跨平台的应用程序,覆盖Windows、macOS、iOS、Android等多个操作系统。它支持Object Pascal(Delphi)和C++两种编程语言,允许开发者使用单一代码库进行多...
### 5. Runloop与线程 - **线程关系**:每个线程都有一个与之关联的RunLoop。主线程(Main Thread)拥有默认的RunLoop,负责处理UI更新和其他任务。 - **线程安全**:了解RunLoop如何与线程交互,以及如何确保线程安全...
文中介绍了一例发生在运行MPLS VPN的网络上由ios软件Bug引起的故障案例,分析了故障发生的缘由,故障发生的现象,最后给出了排错的解决办法。
这是一例发生在运行MPLS VPN的网络上由ios软件Bug引起的故障案例,故障的发生和解决都带有偶然性,并不重要, 只希望通过讨论,能够提高我们分析问题,解决问题的能力。
在使用Delphi XE5时,开发者可能会遇到各种问题,如编译错误、运行时错误、性能瓶颈等,这些都可能是由于原始版本中的bug或未优化的代码引起的。补丁的存在就是为了解决这些问题,确保开发者能够顺利进行软件开发...