반응형
Objective-C를 알기 위해 Swift를 Objective-C로 Convert 하기.. 🙃
함수 호출 방식
/* Swift */
func printColor() { }
func getColor() -> Color { }
func setNewColor(name: String, code: Int) { }
/* Objective - C */
- (void) printColor { }
- (Color) getColor { }
- (void) setNewColor:(NSString *)name, setNewCode:(NSNumber) code { }
타입 호출 방식
1. Struct
/* Swift */
struct Color {
let name : String
var code : Int
}
let color = Color(name: "Orange", code: "0xed872d")
/* Objective-C */
struct Color {
NSString *name;
NSNumber *code;
} Color;
struct Color color;
color.name = "Orange";
color.code = "0xed872d";
2. Class
/* Swift */
import Foundation
class Food {
let name : String
var type : FoodType
var cost : Int
init(name:String, type: FoodType, cost: Int) {
self.name = name
self.type = type
self.cost = cost
}
static func printMethod() { }
}
let food = Food(name: "찜닭", type: .korean, cost: 10000)
/* Objective - C */
/// Food.h file
@import Foundation
@interface Food : NSObject {
NSString *name;
FoodType *type;
NSNumber *cost;
}
+ (void) printMethod;
- (void) getFood;
- (void) setFood: (NSString*)name foodType: (FoodType)type foodCost: (NSNumber*)cost;
@end
/// Food.m file
@interface Food()
@end
@implementation Food
+ (void) printMethod { };
- (void) getFood { };
- (void) setFood:(NSString *) name foodType:(FoodType) type foodCost:(NSNumber *) cost {
name = name;
type = &type;
code = cost;
};
@end
Food *food = [[Food alloc] init];
// or
Food *food = [Food new];
3. Enum
/* Swift */
enum FoodType : String {
case korean = "한식"
case italian = "양식"
case chinese = "중식"
}
let koreanFood = Foodtype.korean
/* Objective - C */
typedef enum { // 기본 : NSInteger
korean = 0,
italian = 1,
chinese = 2
} FoodType;
// or
typedef NS_ENUM(NSInteger, Foodtype) {
korean,
italian,
chinese
} Foodtype;
Foodtype koreanFood = korean;
반응형
'개발 > Objective-C' 카테고리의 다른 글
[Objective-C] Swift와 비교 (2) - 변수 생성 및 ViewController (0) | 2021.12.16 |
---|---|
[Objective-C] 기본 개념 요약 (0) | 2021.12.15 |