簡體   English   中英

Apple Mach-O Linker (Id) 錯誤

[英]Apple Mach-O Linker (Id) error

第一次遇到這個錯誤,我環顧四周,找不到幫助我的解決方案,我已經清理了我的構建並檢查以確保我正在編譯最新的固件。

這發生在我厭倦了實現我在 這里找到的可達性解決方案之后,我導入了兩個可達性文件 (.m/.h),然后將此代碼添加到 .m 文件中並在其中聲明了 t。 h 的可達性文件

-(BOOL)reachable {
    Reachability*r =[Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus =[r currentReachabilityStatus];
    if(internetStatus ==NotReachable){
        return NO;
    }
    return YES;}

之后,我從我的兩個 viwcontrollers viewwillappear 方法中調用了 function ,就像這樣..

- (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 normal i386 cd "/Users/imac/Documents/Iphone applications/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/Users/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 Foundation -o /Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/B ld/Products/Debug-iphonesimulator/wizcode.app/wizcode

ld:在/Users/imac/Library/Developer/Xcode/DerivedData/wizcode-ccyrqptvfsabmbahgxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability中重復符號_OBJC_IVAR_$_Reachability.reachabilityRef -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-ccyrqptvfsabmbah gxartbvxwurq/Build/Intermediates/wizcode.build/Debug-iphonesimulator/wizcode.build/Objects-normal/i386/Reachability-183E2D17A6B26176.o 架構 i386

命令 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 失敗,退出代碼為 1

所以,問題已經解決了。

發生的事情是,當我將可達性文件導入到我的構建中時,發生了一些有趣的事情,並且不知何故,我刪除了構建中已經存在的可達性文件,這些可達性文件被我用於傳輸數據的“all see I”ASIHTTPRequest 方法所使用。 .這搞砸了一切。

長話短說,我替換了文件,一切正常,我還發現 ASIHTTPTequest 正在為我解決可達性問題:) 這太酷了。

檢查SystemConfiguration是否正確鏈接。 無論如何,清理你的代碼:

+ (BOOL)reachable {
    Reachability *r = [Reachability reachabilityWithHostName:@"enbr.co.cc"];
    NetworkStatus internetStatus = [r currentReachabilityStatus];
    return internetStatus != NotReachable;
}

然后只需在需要的地方調用[Reachability reachable] 這也修復了您的 memory 泄漏。

除此之外,它發生在我重新生成托管子類之后,它實際上並沒有覆蓋現有的子類,而是制作了新的副本。 我只是刪除了兩者並重新生成,一切都很好。

刪除它然后再次添加它。 為我工作。 :D

當我在我的項目中添加第三方分析框架時,就會發生這種情況。 當我檢查框架的信息時,它沒有正確復制到磁盤上。 我下載了新框架並將其復制到項目中,現在沒有錯誤。

我在我的 UIViewController 之一中有這段代碼,刪除它解決了這個錯誤。 多么愚蠢且根本不清楚的錯誤消息

NS_ENUM(NSInteger, Mode) {
    Assessments = 0,
    Onboarding
};

確保您正在運行 YourApp.xcworkspace 而不是 .xcodeproj 文件。 run.xcodeproj 文件時我確實遇到了同樣的問題。 Running.xcworkspace 已解決問題,錯誤已消失。

修改我的核心數據 model 后,我刪除了所有(自動生成的)NSManagedObjectModel 子類,並再次創建它們。 一旦它們全部創建完畢,我將它們拖到 XCode 中的 Group 文件夾中……並獲得比平時更長的旋轉沙灘球。

下次我嘗試運行時,它因“Mach-O-Linker”(Id)錯誤而失敗。 在閱讀了其他回復后,我認為這可能與 NSMObj 類未達到預期有關。 我刪除了它們,退出,打開,生成它們,然后把它們放在他們習慣的組文件夾中……還有 Viola。 沒有 Mach-O 錯誤。

我看到問題已解決,但我發布此內容只是為了在正確的問題下對其進行索引。 就我而言,刪除和重新生成(通過編輯器菜單)托管的 object 子類解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM