chris wang chris wang - 1 year ago 146
Swift Question

Type 'AnyObject' does not conform to protocol 'SequenceType'

func loadThumbnails() {

let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory:NSString = paths[0] as NSString
var error:NSError?
let fileManager = NSFileManager()
let directoryContent:AnyObject = fileManager.contentsOfDirectoryAtPath(documentsDirectory, error: &error)!

thumbnails = [QSPhotoInfo]()

for item:AnyObject in directoryContent {
let fileName = item as NSString
if fileName.hasPrefix(kThumbnailImagePrefix) {
let image = loadImageFromDocumentsDirectory(fileName)
var photoInfo = QSPhotoInfo()
photoInfo.thumbnail = image;
photoInfo.thumbnailFileName = fileName
thumbnails += photoInfo

the compile error is below:

Type 'AnyObject' does not conform to protocol 'SequenceType'

what does this menas?

who can help me ,thks a lot!!!!

Answer Source

Apple states in The Swift Programming Language:

The for-in loop performs a set of statements for each item in a range, sequence, collection, or progression.

Right now, directoryContent is just conforming to protocol AnyObject, so you can't use for loops over it. If you want to do so, you have to do something similar to the following:

for item in directoryContent as [AnyObject] {
    //Do stuff
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download