我是开发相当大的iPad应用程序的团队的一员,因此我们创建了许多不同的类.问题是一些方法现在已经过时了,我不想简单地删除它们,因为我知道整个系统的某些部分使用这些方法......但是有更好的(更新的)变体可以使用相反(一些旧的实际上称为新的,但整体类接口变得混乱).
有没有一种方法可以将某些方法标记为折旧(如@deprecated在Java和[Obsolete].NET中).
我看到Apple使用Availability.h并且有标签,例如
__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_0);
Run Code Online (Sandbox Code Playgroud)
...这是唯一的方法(+ App Store是否可以安全地执行此操作?)或者是否有替代方案会在Xcode中标记警告?
实际上没有问题.项目编译和运行.但我无法理解什么是三角触发类的名称(Android Studio告诉我们使用了弃用的代码)
.谁能解释一下?
Java 9问世,Observer已被弃用.这是为什么?这是否意味着我们不应该再实施观察者模式了?
知道什么是更好的选择会很好吗?
我想将方法标记为已弃用,因此使用它的人可以轻松检查其代码并赶上.在Java中你设置@Deprecated,每个人都知道这意味着什么.
那么在Ruby中标记和检查弃用是否有一种首选方式(甚至是工具)?
"shouldOverrideUrlLoading"真的被弃用了吗?如果是这样,我可以使用什么呢?
似乎shouldOverrideUrlLoading已经弃用了针对Android N的应用程序,我需要让应用程序自API 19开始工作,直到最新的Android N(测试版),我使用的是Android N中的一些新功能(如Data Saver),因此定位Marshmallow无法解决这个问题,因为我需要使用这些新功能,这是我使用的代码的一部分:
public boolean shouldOverrideUrlLoading(WebView webview, String url) {
if (url.startsWith("http:") || url.startsWith("https:")) {
...
} else if (url.startsWith("sms:")) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
这是Android Studio给我的消息:
覆盖'android.webkit.WebViewClient'中不推荐使用的方法此检查报告在指定的检查范围中使用不推荐的代码的位置.
我想知道是否使用@SuppressWarnings("deprecation")将让我在API 19上工作直到最新的Android N Beta(及其发布时的最终版本),我无法自己测试,我从未使用过,我需要确定它有效,所以,任何人都能说出来?
android deprecated webview android-webview deprecation-warning
我刚刚安装了Android Studio,并且我开始对一个活动进行编码以进行扩展ActionBarActivity,并显示它已被弃用.那么我如何为我的活动设置一个操作栏呢.此外,入门培训使用ActionBarActivity不引用它的方法已被弃用.
android deprecated android-actionbar android-actionbaractivity
在iOS8和之前我可以使用:
NSString *str = ...; // some URL
NSString *result = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)
在iOS9中stringByAddingPercentEscapesUsingEncoding已被替换为stringByAddingPercentEncodingWithAllowedCharacters:
NSString *str = ...; // some URL
NSCharacterSet *set = ???; // where to find set for NSUTF8StringEncoding?
NSString *result = [str stringByAddingPercentEncodingWithAllowedCharacters:set];
Run Code Online (Sandbox Code Playgroud)
我的问题是:在哪里找到所需的NSCharacterSet(NSUTF8StringEncoding)以便正确更换stringByAddingPercentEscapesUsingEncoding?
我有这个方法:
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,编译器向我显示了一个问题:
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
Run Code Online (Sandbox Code Playgroud)
因为managedQuery()已弃用.
如何在不使用的情况下重写此方法managedQuery()?
我发现我使用了一种不赞成使用的方法(notification.setLatestEventInfo())
它说使用Notification.Builder.
当我尝试创建一个新实例时,它告诉我:
Notification.Builder cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)