我正在尝试将我的iOS应用程序转换为Swift。一切都很顺利,直到我尝试用.swift等效替换我的AppDelegate.m / .h。现在,在构建时,我收到以下错误:
Ld /Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Products/Debug-iphonesimulator/Bowdoin\ Dining.app/Bowdoin\ Dining normal i386
cd "/Users/ruben/Workspace/Development/Objective-C/Bowdoin Dining"
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode6-Beta2.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -L/Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Products/Debug-iphonesimulator -F/Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Products/Debug-iphonesimulator -filelist /Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Intermediates/Bowdoin\ Dining.build/Debug-iphonesimulator/Bowdoin\ Dining.build/Objects-normal/i386/Bowdoin\ Dining.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -lxml2 -lswift_stdlib_core -L/Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -force_load -Xlinker /Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a -Xlinker -sectalign -Xlinker __SWIFT -Xlinker __ast -Xlinker 4 -Xlinker -sectcreate -Xlinker __SWIFT -Xlinker __ast -Xlinker /Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Intermediates/Bowdoin\ Dining.build/Debug-iphonesimulator/Bowdoin\ Dining.build/Objects-normal/i386/BowdoinDining.swiftmodule -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.0 -lz.1.2.5 -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework CoreGraphics -framework Foundation -framework UIKit -Xlinker -dependency_info -Xlinker /Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Intermediates/Bowdoin\ Dining.build/Debug-iphonesimulator/Bowdoin\ Dining.build/Objects-normal/i386/Bowdoin\ Dining_dependency_info.dat -o /Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Products/Debug-iphonesimulator/Bowdoin\ Dining.app/Bowdoin\ Dining
和
duplicate symbol _main in:
/Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Intermediates/Bowdoin Dining.build/Debug-iphonesimulator/Bowdoin Dining.build/Objects-normal/i386/AppDelegate.o
/Users/ruben/Library/Developer/Xcode/DerivedData/Bowdoin_Dining-eevtozmixiiwpkdhanzlqfsrhfxr/Build/Intermediates/Bowdoin Dining.build/Debug-iphonesimulator/Bowdoin Dining.build/Objects-normal/i386/main.o
ld: 1 duplicate symbol for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这个错误看起来如此通用并不是那么有用......但这就是我真正得到的。这似乎发生在我将import "AppDelegate.h
int main.m
切换为import "MyAppName-Swift.h"
之后。有谁知道为什么会这样?感谢。
答案 0 :(得分:9)
你可以完全放弃main.m.只需在app delegate的类声明上方的行上添加@UIApplicationMain
即可指定应用程序的入口点。
答案 1 :(得分:0)
我遇到了同样的问题并删除了main.m解决了它。在我的情况下,我正在将一个Objective-c app转换为swift并且目前有一个混合物。