I have some problem with the code below. When lines gets over 10000 the app will crash basically, or at least not respond or do anything.
The label.text can output the whole text file whithout problem. And there is no problem to store the whole 25000 line file in textArr -array.
But when trying to do the while-loop for a file larger than 10000 lines it just won't respond.
Any suggestions how to solve this? :-)
let path = NSBundle.mainBundle().pathForResource("thefile", ofType: "log")
var text = String(contentsOfFile: path!, encoding: NSUTF8StringEncoding, error: nil)!
var textArr = text.componentsSeparatedByString("\r\n")
var lines = textArr.count
var user_event=1
var user_state=1
var user_info=1
var user_devcom=1
var user_warning=1
var user_io=1
var user_useract=1
var user_error=1
class ViewController2: UIViewController {
override func viewDidLoad() {
label.font = UIFont(name: label.font.fontName, size: 8)
super.viewDidLoad()
var n=0
while n < lines{
var rad: String = textArr[n]
if user_event == 1{
if rad.lowercaseString.rangeOfString(" event ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_state == 1{
if rad.lowercaseString.rangeOfString(" state ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_info == 1{
if rad.lowercaseString.rangeOfString(" info ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_devcom == 1{
if rad.lowercaseString.rangeOfString(" devcom ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_warning == 1{
if rad.lowercaseString.rangeOfString(" warning ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_io == 1{
if rad.lowercaseString.rangeOfString(" io ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_useract == 1{
if rad.lowercaseString.rangeOfString(" useract") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
if user_error == 1{
if rad.lowercaseString.rangeOfString(" error ") != nil{
label.text = "\(label.text!)\(rad)"
label.text! += "\r\r"
}
}
n=n+1
}
}