Objective-C 是一种十足的可恶之物(观点)

主要观点:Objective-C 是较丑的编程语言,在很多方面不如 Swift,应逐渐转向 Swift。
关键信息:

  • Objective-C 用于 Apple 平台开发,语法结合 C 和 Smalltalk 风格,实际较混乱,如字符串拼接冗长、方法调用复杂、内存管理繁琐、命名不统一、缺乏现代特性、集合操作繁琐、块操作易混淆、代码分文件导致代码库杂乱等。
  • Swift 简洁明了,语法现代,如字符串拼接、方法调用、内存管理、集合操作、块操作等都更直观清晰,代码可在单个文件中完成。
  • Objective-C 曾有重要地位,但如今已显落后,Swift 是未来趋势,建议从 Objective-C 转向 Swift。
    重要细节:
  • 字符串拼接示例:Objective-C 需 NSString *combinedString = [NSString stringWithFormat:@"%@ %@", string1, string2];,Swift 只需 let combinedString = "\(string1) \(string2)"
  • 方法调用示例:Objective-C 是 [myObject doSomethingWithParam1:param1 param2:param2 param3:param3];,Swift 是 myObject.doSomething(param1: param1, param2: param2, param3: param3)
  • 内存管理示例:Objective-C 需手动管理,如 MyClass *object = [[MyClass alloc] init];[object retain];// Do something with the object[object release];,Swift 有自动引用计数且无需手动管理。
  • 命名约定示例:Objective-C 方法名冗长,如 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;,Swift 更简洁清晰,如 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
  • 集合操作示例:Objective-C 遍历数组较繁琐,如 for (NSString *str in array) { NSLog(@"%@", str);},Swift 更简洁且利用类型推断,如 for str in array { print(str)}
  • 块操作示例:Objective-C 是 int (^add)(int, int) = ^(int a, int b) { return a + b;};NSLog(@"Sum: %d", add(3, 4));,Swift 更直观,如 let add = { (a: Int, b: Int) -> Int in return a + b}print("Sum: \(add(3, 4))"
  • 类示例对比:Objective-C 需分文件,如 Person.hPerson.m,Swift 可在单个文件中实现,如 class Person {...}
阅读 11
0 条评论