随着所有SDK的浮动,能够为多个SDK和平台构建是很方便的.但是,从3.2跳到3.0甚至偶尔2.x,我经常得到已弃用的警告,涉及已更改或被取代的方法:
warning: 'UIKeyboardBoundsUserInfoKey' is deprecated.
Run Code Online (Sandbox Code Playgroud)
由于我仍然希望保持与旧操作系统的兼容性,并且我还在努力在构建时消除"噪音",是否有办法关闭或禁用这些警告?
在我的应用程序开始时,状态栏被隐藏,因为调用了Info.plist设置Status bar is initially hidden.稍后,我想使用以下方式显示状态栏:
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
Run Code Online (Sandbox Code Playgroud)
但我得到一个警告说该功能已被弃用.有人知道新功能是什么吗?
我的任务是处理一个有一些令人困惑的属性的项目.
该项目的性质是它不会为具有相同编译设置的iPhone模拟器和iPhone设备进行编译.我认为这与需要针对x86或arm6/7进行专门编译有关,具体取决于目标平台.
因此,当在Xcode的Build Settings视图中查看时,项目的构建设置不允许我为每个特定文件设置特定的编译器标志.但是,以前开发过该项目的开发人员已经以某种方式声明了该行:
CE7FEB5710F09234004DE356 /* MyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7FEB5510F09234004DE356 /* MyFile.m */; settings = {COMPILER_FLAGS = "-fasm-blocks -marm -mfpu=neon"; }; };
Run Code Online (Sandbox Code Playgroud)
如果不手动编辑项目文件,有没有办法做到这一点?我知道编辑项目文件可能导致完全破坏它,所以我宁愿不这样做,因为我显然不像以前的开发人员那样知道.
所以澄清一下,问题是:
编译模拟器时构建失败,除非我删除-fasm-blocks标志.编译设备时构建失败,除非我添加-fasm-blocks标志.有没有办法在不编辑项目文件的情况下为每个文件设置此标志?
我的项目中有一些不赞成使用的常量.他们需要留下来.我不想被警告他们,但是如果其他已弃用的常量稍后会出现在我的项目中,我们希望得到警告.
Apple的标题声明如下:
extern NSString * const NameOfStringConstant __OSX_AVAILABLE_BUT_DEPRECATED(version availability info here)
Run Code Online (Sandbox Code Playgroud)
我怎样才能使警告静音?
如何处理iPhone中需要使用较新版本的旧方法的旧方法?
考虑一下setStatusBarHidden:animated:在iOS 3.2中弃用的情况.您将使用的文档指向setStatusBarHidden:withAnimation:,仅适用于iOS 3.2或更高版本.
如果我理解正确,这意味着要定位所有设备(iOS 3.0或更高版本),我必须首先询问是否setStatusBarHidden:withAnimation:可用.如果是,请使用它.如果不是,请使用弃用的方法.但我仍然会收到弃权警告.
这是正确的(请说它不是!)?如果是,是否有任何方法可以抑制此弃用警告,或者指示编译器已经处理了该问题?