0Pricing
Objective-C iOS Development for Legacy & Enterprise Apps · درس

الربط بين Objective-C وSwift

تعرّف على كيفية إتاحة فئات Objective-C وطرقه لـ Swift باستخدام bridging header

الربط بين Objective-C وSwift درس مجاني في Objective-C iOS Development for Legacy & Enterprise Apps على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Objective-C iOS Development for Legacy & Enterprise Apps، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Objective-C iOS Development for Legacy & Enterprise Apps 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Bridging Obj-C to Swift

Welcome! In modern iOS development, you'll often encounter projects that mix Swift and Objective-C. This is especially true for legacy apps or when integrating older libraries.

This lesson teaches you how to make your existing Objective-C code accessible and usable within a Swift project, a process known as bridging.

The Bridging Header

The key to using Objective-C code in Swift is the bridging header. This is a special Objective-C header file that tells the Swift compiler which Objective-C classes, categories, and protocols it should expose to your Swift code.

Think of it as a translator's dictionary for your project.

Xcode's Automatic Helper

When you add your first Objective-C file (.h or .m) to an existing Swift project, Xcode will often prompt you:

  • "Would you like to configure an Objective-C bridging header?"

If you click 'Create Bridging Header', Xcode automatically sets up the file and configures your project's build settings for you. It's usually named YourProjectName-Bridging-Header.h.

Manual Setup Steps

If Xcode doesn't prompt you, or if you need to create one later, you can do it manually:

  1. Create a new header file (File > New > File > Header File) and name it YourProjectName-Bridging-Header.h.
  2. In your project's Build Settings, search for 'Objective-C Bridging Header'.
  3. Set the path to your new header file (e.g., $(SRCROOT)/YourProjectName/YourProjectName-Bridging-Header.h).

Importing Obj-C Files

Once you have your bridging header (whether created automatically or manually), you simply import the Objective-C header files (.h files) of the classes you want to use in Swift.

You do this using the standard Objective-C #import directive inside your bridging header:

#import "MyObjectiveCClass.h"

Do NOT import Swift files into the bridging header!

Example: Simple Obj-C Class

Let's define a simple Objective-C class called MyLogger. We'll put its header in our bridging header.

// MyLogger.h

#import <Foundation/Foundation.h>

@interface MyLogger : NSObject

- (void)logMessage:(NSString *)message;
- (NSString *)getGreetingForName:(NSString *)name;

@end

This class has two methods: one to log a message and one to return a personalized greeting.

Implementation of MyLogger

Here's the implementation for our MyLogger class:

// MyLogger.m

#import "MyLogger.h"

@implementation MyLogger

- (void)logMessage:(NSString *)message {
    NSLog(@"[MyLogger] %@", message);
}

- (NSString *)getGreetingForName:(NSString *)name {
    return [NSString stringWithFormat:@"Hello, %@!", name];
}

@end

Remember, you'd add #import "MyLogger.h" to your YourProjectName-Bridging-Header.h.

Using Obj-C in Swift

Once MyLogger.h is imported into the bridging header, Swift can see and use MyLogger just like any other Swift class! Notice how Objective-C methods are automatically translated into a more Swift-like syntax.

Try running this example:

import Foundation

// Assume MyLogger is available via the bridging header
// In a real project, MyLogger.m and .h would be compiled

@objcMembers
class MyLogger: NSObject {
    func logMessage(_ message: String) {
        print("[MyLogger] \(message)")
    }
    
    func getGreetingForName(_ name: String) -> String {
        return "Hello, \(name)!"
    }
}

// --- Swift code using the bridged class ---
let logger = MyLogger()
logger.logMessage("This is a message from Swift!")

let greeting = logger.getGreetingForName("CoddyKit Learner")
print(greeting)

Type Mapping & Naming

Swift automatically maps many Objective-C types to their Swift equivalents:

  • NSString becomes String
  • NSArray becomes Array
  • NSDictionary becomes Dictionary
  • NSError becomes Error

Objective-C methods are also often renamed to fit Swift's naming conventions (e.g., - (void)logMessage:(NSString *)message; becomes func logMessage(_ message: String)).

Quick Check

You've learned about the bridging header. How does it enable Objective-C code to be used in Swift?

Recap: Bridging Success!

Great job! You've learned the fundamentals of bridging Objective-C code to Swift.

  • The bridging header is your gateway.
  • Xcode can auto-create it.
  • You #import Objective-C header files into it.
  • Swift automatically handles type mapping and naming conventions.

This skill is vital for working on mixed-language projects and integrating with existing Objective-C libraries!

الأسئلة الشائعة

هل درس «الربط بين Objective-C وSwift» مجاني؟

نعم — نص درس «الربط بين Objective-C وSwift» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Objective-C iOS Development for Legacy & Enterprise Apps، انتقل إلى CoddyKit PRO. تتضمن دورة Objective-C iOS Development for Legacy & Enterprise Apps 4 دروس في المجموع.

ماذا ستتعلم في «الربط بين Objective-C وSwift»؟

تعرّف على كيفية إتاحة فئات Objective-C وطرقه لـ Swift باستخدام bridging header تتمرن على Objective-C iOS Development for Legacy & Enterprise Apps مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Objective-C iOS Development for Legacy & Enterprise Apps؟

لا تُشترط خبرة سابقة. Objective-C iOS Development for Legacy & Enterprise Apps على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الربط بين Objective-C وSwift»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Objective-C iOS Development for Legacy & Enterprise Apps هذا؟

نعم. كل درس في Objective-C iOS Development for Legacy & Enterprise Apps يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الربط بين Objective-C وSwift
  2. الربط بين Swift وObjective-C
  3. إنشاء أطر عمل Objective-C
  4. معالجة قابلية كون القيم فارغة وربط الأنواع عبر الجسر
← العودة إلى Objective-C iOS Development for Legacy & Enterprise Apps