11

Obecnie tworzę framework, który może pracować z CoreData, jeśli chcesz. Framework ma także funkcjonalność poza CoreData. Jak mogę zawrzeć cały kod specyficzny dla CoreData w IfDef, sprawdzając czy framework CoreData jest dostępny?Sprawdzanie obecności struktury Objective-C

+0

Czy chcesz, aby Twoja biblioteka podejmowała decyzję podczas kompilacji, a nie w środowisku wykonawczym, aby używać CoreData? Oznacza to, że jeśli dystrybuujesz plik biblioteki, będziesz miał wiele wersji, a jeśli skompilujesz kod, musisz pamiętać o ustawieniu definicji w Ustawieniach kompilacji lub odpowiednio wcześnie w procesie kompilacji. – Joe

+1

Co powiesz na '#ifdef _COREDATADEFINES_H'? –

+0

Brzmi jak coś odwrotnego - chce podjąć decyzję w czasie wykonywania na mokro, aby korzystać z danych podstawowych (w oparciu o jego dostępność i potwierdzenie użytkownika). – Perception

Odpowiedz

9

Co chcesz zrobić, to użyć weak link do fundamentu CoreData. Gdy to zrobisz, możesz użyć runtime checks, aby upewnić się, że CoreData jest dostępna. Zmienne stałe mogą być także checked for existence w środowisku wykonawczym. Jeśli korzystasz z preprocesora (#if#ifdef), będziesz mieć dwie osobne wersje frameworków do dystrybucji z każdym wydaniem.

Powiązane problemy