الربط بين 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:
- Create a new header file (File > New > File > Header File) and name it
YourProjectName-Bridging-Header.h. - In your project's Build Settings, search for 'Objective-C Bridging Header'.
- 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:
NSStringbecomesStringNSArraybecomesArrayNSDictionarybecomesDictionaryNSErrorbecomesError
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
#importObjective-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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الربط بين Objective-C وSwift
- الربط بين Swift وObjective-C
- إنشاء أطر عمل Objective-C
- معالجة قابلية كون القيم فارغة وربط الأنواع عبر الجسر