2014-11-10 2 views
1

У меня есть пользовательский класс, как следует в SwiftКак печатать пользовательский класс для цикла In In Swift?

import UIKit 

class NewsDealDao: NSObject 
{ 
    var dealID: NSString = "" 
    var discountPercent: NSString = "" 
    var dealName: NSString = "" 
    var dealProvider: NSString = "" 
    var descriptionDeal: NSString = "" 
    var expiryDate: NSString = "" 
    var partnerLevelName: NSString = "" 
    var logoPath: NSString = "" 
    var categoryName: NSString = "" 
    var websiteURL: NSString = "" 
    var favourite: NSString = "" 
    var distance: NSString = "" 

} 

Теперь я сделал свои объекты, неправдоподобные из XML и положить внутрь массива, т.е. news_array.

Я хочу видеть значения в боковом массиве.

В Objective-C, я мог бы код, как

for (NewsDealDao *news in news_array){ 
     NSLog(@"News is %@", news.dealName); 
} 

While in Swift, I tried, 

for news in news_array { 

      println ("\(news)") 
     } 

Также я попытался следующий код, но он выходит из строя,

for var index = 0; index < news_array.count; index++ { 

      println("Hello \(index)") 


      var news: NewsDealDao = news_array.objectAtIndex(index) 

      println("New is \(news.dealName)") 


     } 




var array_newsDeal = NSMutableArray() //This is how array is made, 
//This is protocol 
protocol NewsDeal_ParserDelegate { 

    func parsingWasFinished(newsDeal_array: NSMutableArray) 
} 

//This is adding objects to array, when Tag is called. 

if elementName == "DealDetails" { 
      array_newsDeal.addObject(NewsDealDao) 
     } 

//Returning array via Protocol to previous class. Where I wana see result. 

func parserDidEndDocument(parser: NSXMLParser) { 

     delegate?.parsingWasFinished(array_newsDeal) 

    } 

Любое решение, как я могу видеть переменные внутри моего класса объектов, которые хранятся в массиве.

Спасибо.

+3

Что делает первые попытки в стрижа сделать неправильно, и дать сообщение об исключении и трассировки стека, когда вы видите аварии – Wain

ответ

1

Я думаю, вы используете NSArray, поэтому попробуйте этот код:

var news: NewsDealDao = news_array.objectAtIndex(index) as NewsDealDao 

В быстры, objectAtIndex вернуться AnyObject, вы должны преобразовать его к типу класса вы хотите

Update: Я думаю, что эта линия не так

array_newsDeal.addObject(NewsDealDao) 

Вы должны добавить экземпляр NewsDealDao, а не класс

+0

Crash, Dynamic Cast Class Безусловная проблема. на var news = news_array [index], как NewsDealDao, тот же самый сбой, как и выше. –

+0

Можете ли вы показать коды о своем news_array? – Leo

+0

Позвольте мне изменить код. –

0

вы можете сделать это, как

for index in 0...news_array.count 
{ 
    println("Hello \(index)") 


     var news = news_array[index] as? NewsDealDao 

     println("New is \(news.dealName)") 
} 
+0

Краш, Динамический класс Cast Безусловная является проблема , на var news = news_array [index] as NewsDealDao –

+0

см. отредактированный ответ! использовать как? вместо этого как. может быть, что решить вашу ошибку, поскольку я не проверял ее работу или нет! –

 Смежные вопросы

  • Нет связанных вопросов^_^