0

Playground で Swift 配列を試していたところ、この奇妙な動作に気付きました

以下のコードは正常に動作します。

import UIKit

var array = [1,2,3,"Booyaa"]

しかし、Playground から「import UIKit」行を削除するとすぐに、次のエラーが発生します

Playground の実行に失敗しました: /var/folders/tx/tvyf1r314wj9371f491qx8wjbqbgsr/T/./lldb/11708/playground71.swift:2:17: エラー: 'Int' は 'IntegerLiteralConvertible' に変換できません var array = [1, 2, 3 、「ブーヤー」】

なぜこれが起こるのですか?

4

2 に答える 2

1

Apple Devフォーラムに投稿した同じ質問への回答として、正解はここにあります=> https://forums.developer.apple.com/message/35389

これは、Swift 配列には同じ型のオブジェクトしか含めることができないためです。配列には整数と文字列があります。UIKit をインポートすると、配列内のオブジェクトは Swift の推論エンジンによって NSObject 型のオブジェクトになります。自分で確認するには、配列定義の後に次の行を追加します。タイプが Swift.array として表示されます。

import UIKit  
var array = [1,2,3,"Swift2"]  
array.dynamicType 
于 2015-09-26T05:40:37.563 に答える
0

高度なプログラミング言語では、lexical structure複雑なタイプを質問としてチェックおよび比較する必要があります。そして、それはフレームワークに実装されていFoundationます。

また、いくつかのAPIをなどとしてUIKit実装しました...そしてフレームワークでは、フレームワークを使用する必要があります。UIUIViewUIKitFoundation

ところで:FoundationフレームワークはコアSwiftObjective-C言語です。

お役に立てれば!

于 2015-08-03T03:52:16.733 に答える