2016-12-02 9 views
-2

タイトルには、ユーザーが入力した文字列の単語が数えられます。その目的のために、私はそれを少し簡略化し、私は文字列内の空白を数え、その値を他の変数に格納し、その新しい変数を出力します。ユーザーが入力した文字列の単語数をカウントします。

import UIKit 

class TransViewController: UIViewController { 

@IBOutlet var trad_text: UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    trad_text!.layer.borderWidth = 1 
    trad_text!.layer.cornerRadius = 20 
    trad_text!.layer.borderColor = UIColor(red:0.22, green:0.26, blue:0.39, alpha:1.0).cgColor 
} 



override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    let text = trad_text.text 

    let num_words = text?.characters.split(separator: " ").map(String.init) 
    print(num_words) 
    // Dispose of any resources that can be recreated. 
} 

しかし、それは言葉の任意の番号を印刷しない:

私が使用していたコードは以下の通りです。誰かがこのコードがエラーを出す理由を見つけることができますか?この場合の3等しい

var string = "first second third" 
let count = string.components(separatedBy: .whitespaces).count 

数:

はあなたの時間

+2

しかし、なぜあなたはviewDidLoad' 'でこれをやっていますか?あなたのビューコントローラはまだ見えていないので、ユーザが入力したテキストをどのように処理することができますか? – rmaddy

+0

このエラーは貼り付けたコードスニペットとは関係ありません。 – NRitH

+0

ええ、エラーは無関係です。実際に資産情報を取得しようとするコードを教えてください。 –

答えて

0

私は最終的に、次のコードでそれをやった、多分それは誰にも有用であろう:あなたのエラーとは無関係の

import UIKit 
import Foundation 

class TransViewController: UIViewController { 

final class Shared { 
    static let shared = Shared() //lazy init, and it only runs once 

    var stringValue : String! 
    var num_words : Int! 
    var boolValue : Bool! 
} 

@IBOutlet var trad_text: UITextView! 
@IBOutlet var buttonTrad: UIButton! 
@IBOutlet var labelsitoh: UILabel! 

@IBAction func butCalc(_ sender: AnyObject) { 

    let text = trad_text.text 

    let num_words = (text?.components(separatedBy: " ").count)!-1 

    Shared.shared.num_words = num_words 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    trad_text!.layer.borderWidth = 1 
    trad_text!.layer.cornerRadius = 20 
    trad_text!.layer.borderColor = UIColor(red:0.22, green:0.26, blue:0.39, alpha:1.0).cgColor 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 
} 
0

あなたはこのコードを使用することができますいただきありがとうございます。

+1

これはどのように問題の問題に対処していますか? – rmaddy

+0

このコードは主な目標を解決します - 文字列内の単語数をカウントします –

+0

このコードは主な目的を解決します - 文字列内の単語数をカウントします –

関連する問題