Swift敲代码时出现的错误总结

  1. func touchesEnded(touches: Set, withEvent event: UIEvent) {}方法在xocde7.1中变为了:
func touchesEnded(touches:Set<UITouch>,withEvent event: UIEvent?) {}.   

否则会出现 method does not override any method…的错误。

2 . 出现Cannot convert value of type ‘[String: String?] to expected argument type ‘NSDictionary’ 的错误时,应检查定义的变量是否为OPtionl类型,如果是,在其后面加一个 ‘!’。

3.使用带throws方法时,应写成:

do{  
  // NSManagedObjectContext对象保存  
  try context.save()  
}catch let error as NSError{  
  print(error.localizedDescription)  
}  

4.Xcode7 使用NSURLSession发送HTTP请求的问题 :Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
应在plist文件中,加入:

<plist>  
<dict>  
        ....  
    <key>NSAppTransportSecurity</key>  
    <dict>  
        <key>NSAllowsArbitraryLoads</key>  
        <true/>  
    </dict>  
</dict>  
</plist>  

中的部分代码
原因:在iOS9beta中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据。

5.Swift2.0后,Swift中的find函数不能使用了,需要用到indexOf方法,以前的使用方式是:

let arr:Array = ["a","b","c"]
find(arr, "c")!              // 2
find(arr, "d")               // nil

现在需要改为(即使用indexOf方法):

let arr = ["a","b","c"]

let indexOfA = arr.indexOf("a") // 0
let indexOfB = arr.indexOf("b") // 1
let indexOfD = arr.indexOf("d") // nil

更详细的解释在:http://stackoverflow.com/questions/24028860/how-to-find-index-of-list-item-in-swift

6.在做跳转到注册和登录页面时出现了:Attempt to present on whose view is not in the window hierarchy! 的错误,它指的是要加载的ViewController并没有加载。这时应该是:由于在 viewDidLoad 里面调用引起的,解决办法是转移到 viewDidAppear 方法里面。
具体见:http://www.cnblogs.com/xunziji/p/4025009.html

7.在调用fmdb库时出现了以下的错误:

Ld /Users/user1319/Library/Developer/Xcode/DerivedData/Directory-app normal armv7
    cd /Users/user1319/Desktop/app/app

    setenv IPHONEOS_DEPLOYMENT_TARGET 5.0
    setenv PATH "/Developer/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Developer/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/Users/user1319/Library/Developer/Xcode/DerivedData/app_Directory-bnkhohrmxdhrusarswxeqvxlljct/Build/Products/Distribution-iphoneos -F/Users/user1319/Library/Developer/Xcode/DerivedData/app-bnkhohrmxdhrusarswxeqvxlljct/Build/Products/Distribution-iphoneos -filelist "/Users/user1319/Library/Developer/Xcode/DerivedData/app-bnkhohrmxdhrusarswxeqvxlljct/Build/Intermediates/app Directory.build/Distribution-iphoneos/app.build/Objects-normal/armv7/app.LinkFileList" -Xlinker -rpath -Xlinker / -dead_strip -miphoneos-version-min=5.0 -lsqlite3 -lsqlite3.0 -framework AddressBook -framework AddressBookUI -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/user1319/Library/Developer/Xcode/DerivedData/app-bnkhohrmxdhrusarswxeqvxlljct/Build/Products/Distribution-iphoneos/app.app/app

ld: warning: ignoring file /Developer/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/libsqlite3.dylib, missing required architecture armv7 in file
ld: warning: ignoring file /Developer/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/libsqlite3.0.dylib, missing required architecture armv7 in file
Undefined symbols for architecture armv7:
  "_sqlite3_reset", referenced from:
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMStatement reset] in FMDatabase.o
      -[FMResultSet next] in FMResultSet.o
  "_sqlite3_bind_blob", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
  "_sqlite3_changes", referenced from:
      -[FMDatabase changes] in FMDatabase.o
  "_sqlite3_prepare_v2", referenced from:
      -[FMDatabase executeQuery:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMDatabase(FMDatabaseAdditions) validateSQL:error:] in FMDatabaseAdditions.o
  "_sqlite3_open", referenced from:
      -[FMDatabase open] in FMDatabase.o
  "_sqlite3_open_v2", referenced from:
      -[FMDatabase openWithFlags:] in FMDatabase.o
  "_sqlite3_bind_text", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
  "_sqlite3_step", referenced from:
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMResultSet next] in FMResultSet.o
  "_sqlite3_next_stmt", referenced from:
      -[FMDatabase close] in FMDatabase.o
  "_sqlite3_bind_double", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
  "_sqlite3_threadsafe", referenced from:
      +[FMDatabase isThreadSafe] in FMDatabase.o
  "_sqlite3_bind_int", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
  "_sqlite3_last_insert_rowid", referenced from:
      -[FMDatabase lastInsertRowId] in FMDatabase.o
  "_sqlite3_column_blob", referenced from:
      -[FMResultSet dataForColumnIndex:] in FMResultSet.o
      -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o
  "_sqlite3_finalize", referenced from:
      -[FMDatabase close] in FMDatabase.o
      -[FMDatabase executeQuery:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMStatement close] in FMDatabase.o
      -[FMDatabase(FMDatabaseAdditions) validateSQL:error:] in FMDatabaseAdditions.o
  "_sqlite3_column_text", referenced from:
      -[FMResultSet kvcMagic:] in FMResultSet.o
      -[FMResultSet stringForColumnIndex:] in FMResultSet.o
      -[FMResultSet UTF8StringForColumnIndex:] in FMResultSet.o
  "_sqlite3_column_bytes", referenced from:
      -[FMResultSet dataForColumnIndex:] in FMResultSet.o
      -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o
  "_sqlite3_column_int64", referenced from:
      -[FMResultSet longForColumnIndex:] in FMResultSet.o
      -[FMResultSet longLongIntForColumnIndex:] in FMResultSet.o
  "_sqlite3_bind_parameter_count", referenced from:
      -[FMDatabase executeQuery:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
  "_sqlite3_column_count", referenced from:
      -[FMResultSet columnCount] in FMResultSet.o
      -[FMResultSet setupColumnNames] in FMResultSet.o
      -[FMResultSet kvcMagic:] in FMResultSet.o
  "_sqlite3_column_name", referenced from:
      -[FMResultSet setupColumnNames] in FMResultSet.o
      -[FMResultSet kvcMagic:] in FMResultSet.o
      -[FMResultSet columnNameForIndex:] in FMResultSet.o
  "_sqlite3_errmsg", referenced from:
      -[FMDatabase lastErrorMessage] in FMDatabase.o
      -[FMDatabase executeUpdate:error:withArgumentsInArray:orVAList:] in FMDatabase.o
      -[FMResultSet next] in FMResultSet.o
  "_sqlite3_column_type", referenced from:
      -[FMResultSet stringForColumnIndex:] in FMResultSet.o
      -[FMResultSet dateForColumnIndex:] in FMResultSet.o
      -[FMResultSet dataForColumnIndex:] in FMResultSet.o
      -[FMResultSet dataNoCopyForColumnIndex:] in FMResultSet.o
      -[FMResultSet columnIndexIsNull:] in FMResultSet.o
      -[FMResultSet UTF8StringForColumnIndex:] in FMResultSet.o
      -[FMResultSet objectForColumnIndex:] in FMResultSet.o...
  "_sqlite3_libversion", referenced from:
      +[FMDatabase sqliteLibVersion] in FMDatabase.o
  "_sqlite3_errcode", referenced from:
      -[FMDatabase lastErrorCode] in FMDatabase.o
      -[FMResultSet hasAnotherRow] in FMResultSet.o
  "_sqlite3_column_int", referenced from:
      -[FMResultSet intForColumnIndex:] in FMResultSet.o
  "_sqlite3_close", referenced from:
      -[FMDatabase close] in FMDatabase.o
  "_sqlite3_column_double", referenced from:
      -[FMResultSet doubleForColumnIndex:] in FMResultSet.o
  "_sqlite3_data_count", referenced from:
      -[FMResultSet resultDict] in FMResultSet.o
  "_sqlite3_bind_int64", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
  "_sqlite3_bind_null", referenced from:
      -[FMDatabase bindObject:toColumn:inStatement:] in FMDatabase.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法:
1.到 Build Phases > Link Binary with Libraries > + > Add other
2.接着按快捷键 command”+shift+G (快速打开文件)到/ usr/lib/ 目录下
3.找到并一一添加 libz.dylib 和 ibsqlite3.dylib 文件,这样就OK了
具体参考:http://stackoverflow.com/questions/9762727/missing-required-architecture-armv7
http://stackoverflow.com/questions/31420166/libsqlite3-dylib-and-libz-dylib-missing-in-xcode-7-how-do-i-use-parse

8.ios8在UIViewController与xib文件关联时,会出现xib上的控件与视图控制器关联失败,运行时会出现控件为空:nil的错误。
解决办法:在视图控制器类的文件前加上一个@objc(类名):

@objc(ViewController) class ViewController: UIViewController {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是几个iOS开源Swift代码的示例项目: 1. SwiftLint:一个用于在Swift项目中执行代码风格和规范检查的工具。它可以帮助开发者在编写代码保持一致的风格和质量。 2. Alamofire:一个强大的网络请求库,用于在iOS应用程序中进行HTTP网络请求。它提供了简单易用的API,可以轻松处理网络请求和响应。 3. Kingfisher:一个用于在iOS应用程序中下载和缓存网络图片的库。它支持各种格式的图像,并具有高性能和简单的API。 4. SnapKit:一个用于在iOS应用程序中进行自动布局的库。它使用简单的链式语法,使得布局代码更加可读和易于维护。 5. RxSwift:一个用于在iOS应用程序中实现响应式编程的库。它提供了一套强大的工具和操作符,用于处理异步事件流和数据绑定。 6. SwiftyJSON:一个用于在Swift中解析和处理JSON数据的库。它使得解析和处理复杂的JSON数据结构变得简单和高效。 7. Moya:一个基于Alamofire的网络抽象层,用于在iOS应用程序中进行网络请求。它提供了一种优雅的方式来定义和组织网络请求和响应。 8. Realm:一个用于在iOS应用程序中处理本地数据库的库。它提供了简单的API,可以轻松地进行数据存储和查询。 9. SwiftyUserDefaults:一个用于在Swift中简化UserDefaults的库。它提供了一套方便的API,可以轻松地读写和管理应用程序的用户设置和偏好。 10. SwiftDate:一个用于在Swift中处理日期和间的库。它提供了一套简单而强大的API,可以轻松地进行日期计算、格式化和本地化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值