/ / Дублирани символи (проект, използващ библиотека, използваща същата библиотека като проекта) - ios, objective-c, xcode

Дублирани символи (проект, използващ библиотека, използваща същата библиотека като проекта) - ios, objective-c, xcode

A е статична библиотека. B е статична библиотека, която използва A библиотека. C е приложение, което използва и двете A и B библиотеки.

Проблем с дублиращи се символи в C е очевидно.

Какво е правилното (официално) решение, за да се избегне този проблем. Аз наистина искам да го използвам A в B, всичко A, B, C са моите проекти в едно Xcode работно пространство.

Отговори:

0 за отговор № 1

Проблемът възниква при вашия внос, т.е.

#import "A.h"
#import "B.h"
#import "C.h"

В интерфейси един на друг .. По-добър начин да направите, за да избегнете сценария, не е да импортирате .h файл в интерфейса клас, вместо да можете лесно да направите

@class A;
@class B;
@class C;

в интерфейса и импортирайте съответните .h клас в .m файл.

Така че трябва да изглежда така

в A.h клас

@class B;
@class C;

@interface A : NSObject

@end

в A.m клас

#import "B.h"
#import "C.h"
@implementation A

@end

0 за отговор № 2

@ PartiallyFinite отговори на въпроса ми. За съжаление в коментара. Тъй като той не отговаря, за да отговори на коментара си, че мога да го приема, цитирам го, за да затвори този въпрос.

"Статичните библиотеки се компилират директно в изпълнимия файл / библиотека, така че няма нужда да се свързвате C с A, употреба A в B, и употреба B в молбата ви, но не свързвайте A директно с молбата ви. Просто включете заглавията от A; не е необходимо да се свързвате с него отделно, тъй като вече е включено в него B. "