标签: deprecated

如何在Objective-C 2.0中将方法标记为已弃用?

我是开发相当大的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中标记警告?

iphone objective-c deprecated

139
推荐指数
5
解决办法
4万
查看次数

为什么Cloneable不被弃用?

通常理解CloneableJava 中的接口是破坏的.这有很多原因,我不会提及; 其他人已经做到了.它也是Java架构师自己的位置.

因此,我的问题是:为什么还没有被弃用?如果核心Java团队已经确定它已被破坏,那么他们也必须考虑弃用.他们这样做的原因是什么(在Java 8中,它仍然没有被弃用)?

java deprecated cloneable java-8

137
推荐指数
2
解决办法
8620
查看次数

不推荐使用ActionBarActivity

实际上没有问题.项目编译和运行.但我无法理解什么是三角触发类的名称(Android Studio告诉我们使用了弃用的代码)在此输入图像描述.谁能解释一下?

android deprecated android-actionbar android-studio

136
推荐指数
3
解决办法
11万
查看次数

在Java 9中不推荐使用Observer.我们应该使用什么而不是它?

Java 9问世,Observer已被弃用.这是为什么?这是否意味着我们不应该再实施观察者模式了?

知道什么是更好的选择会很好吗?

java deprecated observer-pattern java-8 java-9

122
推荐指数
4
解决办法
3万
查看次数

在Ruby中标记弃用代码的最佳实践?

我想将方法​​标记为已弃用,因此使用它的人可以轻松检查其代码并赶上.在Java中你设置@Deprecated,每个人都知道这意味着什么.

那么在Ruby中标记和检查弃用是否有一种首选方式(甚至是工具)?

ruby deprecated

121
推荐指数
6
解决办法
2万
查看次数

`shouldOverrideUrlLoading`真的被弃用了吗?我可以用什么呢?

"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

121
推荐指数
3
解决办法
9万
查看次数

为什么不赞成使用ActionBarActivity

我刚刚安装了Android Studio,并且我开始对一个活动进行编码以进行扩展ActionBarActivity,并显示它已被弃用.那么我如何为我的活动设置一个操作栏呢.此外,入门培训使用ActionBarActivity不引用它的方法已被弃用.

android deprecated android-actionbar android-actionbaractivity

116
推荐指数
3
解决办法
8万
查看次数

在ios9中替换stringByAddingPercentEscapesUsingEncoding?

在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

url encoding objective-c deprecated ios

108
推荐指数
4
解决办法
8万
查看次数

不推荐使用ManagedQuery()问题

我有这个方法:

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()

java android deprecated

103
推荐指数
1
解决办法
8万
查看次数

究竟如何使用Notification.Builder

我发现我使用了一种不赞成使用的方法(notification.setLatestEventInfo())

它说使用Notification.Builder.

  • 我该如何使用它?

当我尝试创建一个新实例时,它告诉我:

Notification.Builder cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)

api notifications android deprecated

99
推荐指数
3
解决办法
16万
查看次数