我是Swift的新手--尝试从URL读取JSON文件。下面是我的尝试。
JSON看起来是有效的--我用JSONLint测试了它,但是它一直在崩溃。
有什么想法?
func getRemoteJsonFile() -> NSDictionary {
//Create a new url
let remoteUrl:NSURL? = NSURL(string: "http://nfl-api.azurewebsites.net/myplayers.json")
//check if its nil
if let actualRemoteUr
我想给我的堆栈构造函数contents ( element : Element),它返回一个bool,说明var内容是否包含提供的元素。
struct Stack<T>: SequenceType, Equatable, Printable, DebugPrintable {
typealias Element = T
private var contents: [Element]
var top: Int
init(arrayLiteral elements: T...) {
self.init(elements) }
当我尝试用下面的代码列出系统中的可用字体时,我得到了附加的错误消息。我的代码有什么问题吗?或者这是一个编译器错误?
for fontFamilyName: String! in UIFont.familyNames() {
for fontName: String! in UIFont.fontNamesForFamilyName(fontFamilyName) {
println("font: \(fontName)")
}
}
错误消息:
0 swift 0x0000000101678e08 llvm::sys::Pr
我可以使用Swift的数组轻松地做到这一点,而不会出现任何编译器错误:
let array: Array<AnyObject> = Array<String>()
但是,当我试图对我的自定义类型做同样的操作时,我会得到编译器错误:
class Bar<T> {
}
let bar: Bar<AnyObject> = Bar<String>()
错误是:
无法将“Bar<String>”类型的值转换为指定类型“Bar<AnyObject>”
如何使用自定义类型实现与本机Swift的数组相同的行为?
如何使用自定义函数utils扩展Swift的Array<T>或T[]类型?
浏览一下Swift的API文档,就会发现数组方法是T[]的扩展,例如:
extension T[] : ArrayType {
//...
init()
var count: Int { get }
var capacity: Int { get }
var isEmpty: Bool { get }
func copy() -> T[]
}
当复制和粘贴相同的源代码并尝试任何变体时,例如:
extension T[] : ArrayType {
我对Swift有点陌生,我想知道如何使函数接受包含各种变量类型的数组。我希望函数只接受没有特定类型的“Array”,但是它会抛出一个错误。这是我的密码:
func length(arry arry: Array)
{
}
我知道我必须将一个<>放在数组之后,但我需要这个函数来普遍接受所有数组。
编辑:,每当我添加一个扩展,我就会得到这些荒谬的错误。我的代码是:
//: Playground - noun: a place where people can play
import UIKit
extension Array {
var length: Int {
retu
当我试图从核心数据中删除对象时,我会得到以下错误:
fatal error: NSArray element failed to match the Swift Array Element type
我得知道为什么会发生这种事。我的桌子视图被分成几个部分,也许这和它有什么关系?我以前从表视图中删除核心数据从来没有任何问题,所以这对我来说是非常奇怪的。
我的代码如下所示:
var userList = [User]()
var usernames = [String]()
viewDidLoad(){
let appDel:AppDelegate = UIApp
我有下面的代码行
if let a = assetConfigs.first { $0.code == cells[2] }
{...}
assetConfigs是AssetConfig类型对象的数组,它具有一个名为code的属性。
我知道错误了
Cannot call value of non-function type AssetConfig?
我只想要第一个资产配置,它的代码与cells2中包含的值相同。Swift下的数组具有一个名为first的函数,它返回满足一定条件的第一个对象。()
我做错了什么?