Swift를 처음 접했고 (이번 주에 시작) Objective-C에서 내 앱을 마이그레이션하고 있습니다. 기본적으로 Objective-C에 다음 코드가 제대로 작동합니다.
typedef enum : int {
MyTimeFilter1Hour = 1,
MyTimeFilter1Day = 2,
MyTimeFilter7Day = 3,
MyTimeFilter1Month = 4,
} MyTimeFilter;
...
- (void)selectFilter:(id)sender
{
self.timeFilterSelected = (MyTimeFilter)((UIButton *)sender).tag;
[self closeAnimated:YES];
}
Swift로 번역 할 때 다음을 수행했습니다.
enum MyTimeFilter : Int {
case OneHour = 1
case OneDay = 2
case SevenDays = 3
case OneMonth = 4
}
...
@IBAction func selectFilter(sender: AnyObject) {
self.timeFilterSelected = (sender as UIButton).tag as MyTimeFilter
self.close(true)
}
그렇게하면 오류가 발생합니다.
'Int'는 'MyTimeFilter'로 변환 할 수 없습니다
(태그 속성을 사용하여) 내 접근 방식이 가장 좋은지 모르겠지만 어쨌든 내 앱의 다른 곳에서 이러한 종류의 캐스팅을 수행해야합니다. 누구 든지이 오류를 제거하는 방법에 대한 아이디어가 있습니까?
감사!
(sender as UIButton)
, 당신은 단지에 걸릴하는 방법 서명을 변경할 수 있습니다UIButton
대신AnyObject
.