Я изучаю Swift и пишу базовую функцию инициализации карточной игры, где я хочу использовать функцию для настройки некоторых колод.Swift - функция без параметров с возвращаемым значением
Свифт продолжает жаловаться, что мне не хватает аргумента в параметре №1, но нет никаких параметров, и я не хочу этого.
Game
класс следующим образом
class Game
{
// MARK: ** Private vars **
private var gameState: GameState?
private var playerOnTurn: Player?
private var seedCash:Int?
// MARK: ** Public vars **
lazy var players = [Player]()
var chequesDeck:Deck = Deck()
var propertiesDeck:Deck = Deck()
init()
{
self.gameState = .Initialize
self.playerOnTurn = nil // No player on turn when game is initialized
self.seedCash = kInitialSeedCash
}
func setup(numberOfPlayers:Int)
{
// Create decks of properties and cheques
self.propertiesDeck = Deck.createProperties()
self.chequesDeck = Deck.createCheques()
}
}
Deck
класс следующим образом
// Deck of cards
// Two deck types in the game - (1) Properties & (2) Cheques
class Deck
{
private var cards:[Card] = [] // Empty Array
// @return: An array of cards
func createProperties() -> [Card]
{
var propertyDeck:[Card] = []
// TODO: - Needs Local JSON reader
let prop1 = Card.init(name:"Cardboard box", value:1)
propertyDeck.append(prop1)
let prop2 = Card.init(name:"Outhouse", value:2)
propertyDeck.append(prop2)
let prop3 = Card.init(name:"Outhouse", value:3)
propertyDeck.append(prop3)
return propertyDeck
}
// @return: An array of cards
func createCheques() -> [Card]
{
var chequeDeck:[Card] = []
// create 2 copies of each card, but skip 1s
for var i:Int = 0; i<=15; i++
{
if (i != 1)
{
let chequeCard = Card.init(name: "Cheque", value: i * 1000)
chequeDeck.append(chequeCard)
}
}
return chequeDeck
}
func addCard()
{
}
func shuffle()
{
}
}
Deck()
является class
func setup() {
var propertiesDeck:Deck = Deck()
// Create property deck
self.propertiesDeck = Deck.createProperties()
}
// Deck.createProperties file
// @return: An array of cards
func createProperties() -> [Card]
{
var propertyDeck:[Card] = []
let prop1 = Card.init(name:"Penthouse", value:1)
propertyDeck.append(prop1)
return propertyDeck
}
Но Свифт продолжает жаловаться, что;
Отсутствует аргумент для параметра # 1 в вызове
Но нет никаких аргументов или параметров.
Возможно, я делаю что-то неправильно/глупо?
Пожалуйста, покажите декларацию 'Deck' и показать нам, где эти функции определены. –
Обновлен код, показывающий объявление класса Deck – zardon
Вопрос, который у меня был, был много раз (поскольку я новый разработчик Swift); chequesDeck в игровом классе должен быть массивом карт, такими же, как propertiesDeck; были и другие проблемы. Но мне удалось получить карты для печати в журнал, что очень хороший шаг для меня. – zardon