2014-12-19 2 views
1

값의 배열에 사물을 추가하는 기능을 작성하려하지만 기능을 호출 한 후 인쇄 할 때 __lldb_expr_444.taste를 반환합니다! 을 heres 내 코드 :기능이 신속하게 작동하지 않는 추가 기능이 있습니다.

// Playground - noun: a place where people can play 

import UIKit 

struct taste { 
var TheName = "blankName" 

var TheDesc = "blankDesc" 
} 




var data = [taste]() 


func addFruit(name:String,desc:String) { 
data.append(taste(TheName: name as String, TheDesc: desc as String)) 


} 

addFruit("cherry", "sweet") 

println(data) 

내가 무슨 일을하고 있는가?

+0

대문자로 시작하는 가상 유리의 이름을 지정하면 안됩니다. –

답변

0

함수의 데이터에 액세스하려고 시도했지만 함수의 외부에서 선언되었습니다.

이 문제를 해결하는 한 가지 방법은 배열을 클래스 변수로 만들고 클래스의 addFruit as 함수를 만드는 것입니다.

그렇지 않으면 addFruit 함수의 매개 변수로 배열을 전달하여 함수 내에서 수정할 수 있습니다. 배열을 인쇄하려면 배열을 반복 할 수 있습니다.

var data:[taste] 

func addFruit(name:String, desc:String, inout fruitArray:taste) { 
    fruitArray.append(taste(TheName: name as String, TheDesc: desc as String)) 
} 

addFruit("cherry", "sweet", &data) 

for item in data{ 
    println(item) 
} 
1

인쇄 가능한 프로토콜을 채택하고 텍스트 구조체 표현을 반환하는 계산 된 계산 변수를 구현해야합니다.

struct taste: Printable { 

    var TheName = "blankName" 
    var TheDesc = "blankDesc" 

    var description: String { 
    return "TheName: \(TheName); TheDesc: \(TheDesc)" 
    } 
} 
관련 문제