我有一个课堂作品,我定义了每个作品的形状。
import UIKit
import Foundation
class ViewController: UIViewController {
var token = "barrymanilow"
var endPoint = "http://www.never.money/simple_app7.php"
@IBOutlet weak var firstLabel: UILabel!
override func viewDidLoad() {
submitAction(self)
}
func submitAction(sender: AnyObject) {
let myUrl = NSURL(string: "http://www.mindyour.money/simple_app7.php");
let request = NSMutableURLRequest(URL:myUrl!);
request.HTTPMethod = "POST";
// Compose a query string
let postString = "token=\(token)";
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
data, response, error in
if error != nil{
println("error=\(error)")
return
}
// Print out response body
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
println("responseString = \(responseString)")
//Let's convert response sent from a server side script to a NSDictionary object:
var err: NSError?
var myJSON = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error:&err) as? NSArray
var json : JSON = JSON(data: data)
let results: AnyObject? = myJSON?.valueForKey("player_username")
println("\(results)")
let result2 = json["player_username"].string
}
task.resume()
}
}
但是我手工制作这些形状,现在我实时阅读这些作品,所以我创建了类似
的东西myShape.Add(new piece
{
Height = 3,
Width = 2,
Name = "3x2 L TopRight",
Size = 4,
Shape = new int[][] {
new int[] { 1, 0 },
new int[] { 1, 0 },
new int[] { 1, 1 }
}
});
那么如何使用virtualRow创建Shape?
我尝试像
这样的东西List<int[]> virtualRow = new List<int[]>();
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 0 });
virtualRow.Add(new int[] { 1, 1 });
但是说
无法隐式转换类型&#39; int [] []&#39;到&#39; int []&#39;
答案 0 :(得分:8)
virtualRow.ToArray()
已经一个int
值数组的数组。您不需要创建一个新的int数组数组并将其添加到其中。
您只需要:
Shape = virtualRow.ToArray(),
答案 1 :(得分:3)
virtualRow是整数数组的List
,因此要获得整数数组的数组,只需编写:
Shape = virtualRow.ToArray();
... List.ToArray()的返回类型为T []。
您的代码出错了,因为它尝试添加 int[][]
到Shape
而不是创建 Shape
作为{ {1}}。
答案 2 :(得分:1)
您想要执行以下操作:
Shape = virtualRow.ToArray();
由于virtualRow已经是一个数组列表。 ToArray
函数为int[][]
创建virtualRow
对象,您需要做的就是将其存储为形状。你要做的是创建一个矩阵,其中是ToArray
函数的结果。这样你就可以存储函数的结果,它可以提供你想要的东西。