Łączenie Objective-C ze Swift
Dowiedz się, jak udostępniać klasy i metody Objective-C w języku Swift za pomocą bridging header.
Łączenie Objective-C ze Swift to bezpłatna lekcja Objective-C iOS Development for Legacy & Enterprise Apps na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Objective-C iOS Development for Legacy & Enterprise Apps, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Objective-C iOS Development for Legacy & Enterprise Apps zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
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!
Ucz się Objective-C dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Łączenie Objective-C ze Swift” jest bezpłatna?
Tak — pełny tekst „Łączenie Objective-C ze Swift” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Objective-C iOS Development for Legacy & Enterprise Apps, przejdź na CoddyKit PRO. Kurs Objective-C iOS Development for Legacy & Enterprise Apps zawiera 4 lekcji w sumie.
Co nauczysz się w „Łączenie Objective-C ze Swift”?
Dowiedz się, jak udostępniać klasy i metody Objective-C w języku Swift za pomocą bridging header. Ćwiczysz Objective-C iOS Development for Legacy & Enterprise Apps z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Objective-C iOS Development for Legacy & Enterprise Apps?
Nie wymagamy żadnego doświadczenia. Objective-C iOS Development for Legacy & Enterprise Apps w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Łączenie Objective-C ze Swift”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Objective-C iOS Development for Legacy & Enterprise Apps?
Tak. Każda lekcja Objective-C iOS Development for Legacy & Enterprise Apps zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Łączenie Objective-C ze Swift
- Łączenie Swift z Objective-C
- Tworzenie frameworków Objective-C
- Obsługa nullowalności i mapowanie typów między mostami