Obsługa nullowalności i mapowanie typów między mostami
Sprawna współpraca Objective-C ze Swiftem zależy od precyzyjnych adnotacji nullowalności i poprawnego mapowania typów. Ta lekcja pokazuje, jak adnotować nagłówki, aby Swift widział bezpieczne, idiomatyczne API.
Obsługa nullowalności i mapowanie typów między mostami to bezpłatna lekcja Objective-C iOS Development for Legacy & Enterprise Apps na CoddyKit. To lekcja 4 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.
Why Nullability Matters
Without annotations, Swift imports every Objective-C pointer as an implicitly unwrapped optional. That hides crashes and produces ugly Swift APIs.
The Three Annotations
Objective-C offers three nullability keywords:
nonnullimports as a plain typenullableimports as an optionalnull_unspecifiedimports as implicitly unwrapped
Annotating a Method
Add nullability directly to a method signature so Swift sees the intent.
- (nullable User *)userWithID:(nonnull NSString *)userID;
- (nonnull NSArray<User *> *)allUsers;Audited Regions
Wrap a header section in audited macros so everything defaults to nonnull; you then only mark the exceptions with nullable.
NS_ASSUME_NONNULL_BEGIN
@interface UserStore : NSObject
- (nullable User *)cachedUser;
- (NSArray<User *> *)allUsers;
@end
NS_ASSUME_NONNULL_ENDLightweight Generics
Annotate collections with lightweight generics so Swift imports typed arrays instead of [Any].
@property (nonatomic, copy) NSArray<NSString *> *tags;
@property (nonatomic, copy) NSDictionary<NSString *, NSNumber *> *scores;How Swift Sees It
With annotations, the bridge produces clean Swift signatures. The nullable return becomes a real optional you can safely unwrap.
// Swift import of the annotated method
func user(withID userID: String) -> User?
func allUsers() -> [User]Mapping Primitive Types
NSInteger maps to Int, BOOL to Bool, and NSString * to String. Knowing these mappings prevents accidental bridging classes like NSNumber in Swift.
Refining Enums
Use NS_ENUM and NS_OPTIONS so Swift imports proper enums and option sets instead of bare integers.
typedef NS_ENUM(NSInteger, OrderState) {
OrderStatePending,
OrderStateShipped,
OrderStateDelivered
};Renaming for Swift
Use NS_SWIFT_NAME to give a method a more idiomatic Swift name without changing the Objective-C name.
+ (instancetype)userWithName:(NSString *)name
NS_SWIFT_NAME(init(name:));Errors Across the Bridge
Methods with a trailing NSError ** parameter import as Swift throwing functions, so callers can use try.
- (BOOL)saveAndReturnError:(NSError **)error;
// Swift: func save() throwsAudit the Whole Header
Leaving any pointer unannotated reintroduces unsafe implicit optionals. Audit every public header so the entire Swift-facing surface is precise.
Quick Check
Test your bridge type-mapping knowledge.
Recap
You learned nullability annotations, audited regions, lightweight generics, NS_ENUM, NS_SWIFT_NAME, and error bridging to expose clean, safe Swift APIs from Objective-C.
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 „Obsługa nullowalności i mapowanie typów między mostami” jest bezpłatna?
Tak — pełny tekst „Obsługa nullowalności i mapowanie typów między mostami” 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 „Obsługa nullowalności i mapowanie typów między mostami”?
Sprawna współpraca Objective-C ze Swiftem zależy od precyzyjnych adnotacji nullowalności i poprawnego mapowania typów. Ta lekcja pokazuje, jak adnotować nagłówki, aby Swift widział bezpieczne, idioma… Ć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 4 z 4.
Ile czasu zajmuje lekcja „Obsługa nullowalności i mapowanie typów między mostami”?
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