구성원을 수동으로 사용하지 않는 방법
Objective-C와 달리 Swift에는 전처리기가 없는데 클래스의 멤버를 수동으로 사용하지 않는 방법이 있습니까?
다음과 유사한 것을 찾고 있습니다.
-(id)method __deprecated;
다음과 같은 Available 태그를 사용할 수 있습니다.
@available(*, deprecated)
func myFunc() {
// ...
}
여기서 *는 플랫폼(iOS, iOS 애플리케이션)입니다.확장, macOS, watchOS, tvOS, * for all 등).
원래 플랫폼의 버전을 지정할 수도 있습니다.introduced,deprecated,obsoleted,renamed그리고 amessage:
@available(iOS, deprecated:6.0)
func myFunc() {
// calling this function is deprecated on iOS6+
}
Or
@available(iOS, deprecated: 6.0, obsoleted: 7.0, message: "Because !")
func myFunc() {
// deprecated from iOS6, and obsoleted after iOS7, the message "Because !" is displayed in XCode warnings
}
프로젝트가 여러 플랫폼을 대상으로 하는 경우 다음과 같은 여러 태그를 사용할 수 있습니다.
@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
// ...
}
자세한 내용은 Swift 설명서를 참조하십시오.
Swift 3 및 Swift 4부터는 버전 번호가 선택 사항입니다.이제 다음을 간단히 입력할 수 있습니다.
@available(*, deprecated)
func foo() {
// ...
}
또는 메시지를 원하는 경우 다음과 같이 하십시오.
@available(*, deprecated, message: "no longer available ...")
func foo() {
// ...
}
이 기능을 사용하여 새 기능으로 항목을 자동 수정할 수 있습니다.
@available(*, deprecated, renamed: "myNewFunc")
func myOldFunc() {
// ...
}
func myNewFunc() {
// ...
}
* 대신 swift를 사용하면 swift 버전 번호를 사용할 수 있습니다.
사용되지 않는 함수는 경고를 생성하지만 호출할 수 있습니다. (경고)
사용되지 않는 함수를 사용하면 완전히 호출할 수 없습니다. (오류)
@available(swift, deprecated: 4.0, obsoleted: 4.2, message: "This will be removed in v4.2, please migrate to ...")
또는 iOS, macOS, watchOS, tvOS와 같은 다른 옵션을 사용합니다.
iOS 사용 안 함
@available(iOS, deprecated:7.0, obsoleted: <ObsoletedVersion>, renamed: "myFuncNew", message: "Please use new method - myFuncNew()")
func myFuncOld() {
//logic
}
한다면deployment target[정보] ==9.0그리고.
스위프트 5.0
다음을 사용하여 모든 메서드/클래스/구조/프로토콜을 사용하지 않습니다.@available
@available(*, deprecated, message: "Parse your data by hand instead")
func parseData() { }
@available(*, deprecated, renamed: "loadData")
func fetchData() { }
@available(swift, obsoleted: 4.1, renamed: "attemptConnection")
func testConnection() { }
@available(swift, deprecated: 4.0, obsoleted: 5.0, message: "This will be removed in v5.0; please migrate to a different API.")
가능한 매개 변수:
- 소개했다
- 비권위의
- 낡아빠진
- 메세지
- 이름을 바꾼
자세한 내용은 애플 문서: 속성을 참조하십시오.
원답: https://stackoverflow.com/a/56379453/4061501
특정 버전에서 기본 init 메서드를 더 이상 사용하지 않기 위해 다음을 수행했습니다.
// Old Method to be deprecated
@available(*, unavailable, message: "This method has been deprecated from version 2.0.0. Please use new init method as init(param1:param2:)")
@objc public override init() {
super.init()
/**
* This fatalError has been thrown if anyone is using this function in Objective-C and initializes this with the following syntax.
* MyClass *classObj = [MyClass new];
*/
fatalError("This method has been deprecated from version 2.0.0. Please use new init method as init(param1:param2:)")
}
// New init method
@objc public required init(param1: String, param2: String) {
super.init()
// New init method logic goes here.
}
언급URL : https://stackoverflow.com/questions/25405133/how-to-manually-deprecate-members
'programing' 카테고리의 다른 글
| 이미 삭제한 대용량 파일 때문에 GitHub에 푸시할 수 없습니다. (0) | 2023.05.07 |
|---|---|
| 선택한 실행 대상이 이 작업에 적합하지 않습니다. (0) | 2023.05.07 |
| iOS 앱을 다운시키는 믿을 수 있는 방법은 무엇입니까? (0) | 2023.05.07 |
| C# 디렉터리의 전체 내용 복사 (0) | 2023.05.07 |
| 그래서... 이 NoSQL 같은 것은 (0) | 2023.05.07 |

