Ошибка Apple Mach-O Linker (Id)
Получил эту ошибку в первый раз, я огляделся и не могу найти решение, чтобы помочь мне, я очистил свою сборку и также проверил, чтобы убедиться, что компилирую последнюю версию прошивки.
Это произошло после того, как я устал реализовывать решение доступности, которое я нашел здесь здесь
Я импортировал два файла достижимости (.m/.h), затем добавил этот код в файл .m и delared t в. h файлов достижимости
-(BOOL)reachable {
Reachability*r =[Reachability reachabilityWithHostName:@"enbr.co.cc"];
NetworkStatus internetStatus =[r currentReachabilityStatus];
if(internetStatus ==NotReachable){
return NO;
}
return YES;}
После этого я вызвал функцию из обоих моих виуконтроллеров viewwillappear методами вроде этого..
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
//-- Check Reachability START ---->
Reachability *reach = [[Reachability alloc] init];
if ([reach reachable]) {
NSLog(@"Reachable");
}
else {
NSLog(@"Not Reachable");
}
//-- Check Reachability END ---->
}
Ошибки не производились до тех пор, пока я не попытался создать и запустить в симуляторе. Это ошибка, которую я получил: (
Ld /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator/wizcode.app/wizcode нормальный i386 cd "/Пользователи/imac/Documents/Iphone Приложения /wizsanCode/wizsanCode.5/Wizcode" setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Пользователи/IMAC/Library/Developer/Xcode/DerivedData/Wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator -F/Users/IMAC/Library/Developer/Xcode/DerivedData/Wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator -filelist /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/wizcode.LinkFileList -mmacosx-version-min = 10.6 -Xlinker -objc_abi_version -Xlinker 2 -lz -framework CoreGraphics -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework UIKit -framework Основание -o /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Products/Debug-iphonesimulator/wizcode.app/wizcode
ld: дубликат символа _OBJC_IVAR _ $_ Reachability.reachabilityRef в /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o а также /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o для архитектуры i386 collect2: ld возвращен 1 статус выхода Команда /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 не удалось с кодом выхода 1 ld: дублировать символ _OBJC_IVAR _ $_ Reachability.reachabilityRef в /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o а также /Users/imac/Library/Developer/Xcode/DerivedData/wizcode -ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o для архитектуры i386
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 не удалось с кодом выхода 1
Ответы
Ответ 1
Итак, проблема решена.
Что произошло, когда я импортировал файлы достижимости в мою сборку, произошло что-то смешное, и каким-то образом я удалил файлы достижимости, которые уже были в моей сборке, которые используются методами "все видящие меня" ASIHTTPRequest, которые я использовал для транспортировки моего данные... которые все испортили.
Короче говоря, я заменил файлы, и все работает нормально, и я также узнал, что ASIHTTPTequest заботится о достижимости для меня:), насколько это круто.
Ответ 2
Проверьте правильность связи SystemConfiguration
. Во всяком случае, очистите свой код:
+ (BOOL)reachable {
Reachability *r = [Reachability reachabilityWithHostName:@"enbr.co.cc"];
NetworkStatus internetStatus = [r currentReachabilityStatus];
return internetStatus != NotReachable;
}
А затем просто вызовите [Reachability reachable]
, где вам нужно. Это также устраняет утечку памяти, которую вы имеете.
Ответ 3
Просто, чтобы добавить к этому, это произошло после того, как я восстановил управляемые подклассы, и он фактически не перезаписывал существующие, а просто делал новые дубликаты. Я просто удалил и то, и другое, и все было хорошо.
Ответ 4
После изменения моей основной модели данных я удалил все (автоматически сгенерированные) подклассы NSManagedObjectModel и создал их снова. Как только все они были созданы, я перетащил их в папку группы в XCode... и получил вращающийся пляжный мяч дольше обычного.
В следующий раз, когда я попытался запустить, он потерпел неудачу с ошибкой "Mach-O-Linker" (Id). Прочитав другие ответы, я подумал, что это может быть связано с тем, что классы NSMObj не являются ожидаемыми. Я удалил их, запустил, открыл, сгенерировал их и поместил их в свою обычную групповую папку... и Viola! нет ошибки Mach-O.
Я вижу, что проблема решена, но я отправляю ее только для того, чтобы проиндексировать ее по соответствующему вопросу. В моем случае удаление и восстановление (через меню редактора) подклассы управляемых объектов исправили проблему.
Ответ 5
Удалите его, затем добавьте его снова. Работает на меня.: D
Ответ 6
Это происходит со мной, когда я добавляю стороннюю структуру аналитики в свой проект. Когда я проверяю с информацией о структуре, ее неправильно скопировали на диск. я загрузить новую фреймворк и скопировать его в проект, и теперь нет ошибки.
Ответ 7
У меня был этот код в одном из моих UIViewController и его устранение решила эту ошибку. Какое глупое и нечеткое сообщение об ошибке
NS_ENUM(NSInteger, Mode) {
Assessments = 0,
Onboarding
};
Ответ 8
Убедитесь, что вы запускаете приложение YourApp.xcworkspace вместо файла .xcodeproj. Я столкнулся с той же проблемой, когда запустил файл .xcodeproj. Запуск .xcworkspace решил проблему, и ошибка исчезла.