Search code examples
iosswiftcs193p

_BSMachError while running Stanford's CS193p Smashtag app


I downloaded the Smasthag demo app from course's site. Project builds fine (after small changes in Twitter, TwitterRequest etc. classes, because I use the latest Xcode 7b4) and works fine on simulator (I also had to add NSAppTransportSecurity key to info.plist), but not on a device - it doesn't fetch tweets . I tested it on both iPhone 6 with iOS 9 Public Beta and iPad 2 with iOS 8.4. Moreover, when app is running in the simulator and I change hashtag to search, whole tableView reloads with new tweets, but in the console I get this:

2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid capability (20)
2015-07-23 03:24:15.560 Smashtag[25991:4344251] _BSMachError: (os/kern) invalid name (15)

App still runs fine, but this error bugs me. I couldn't fine anything about this _BSMachError in google (just one lonely Indonesian tweet). I can't also get why app doesn't fetch tweets on a device.


Solution

  • To fix this issue you should set locale to en_US.

    Change the private extension asTwitterDate in Tweet.swift to the following to fix issue on non en_US devices.

    ...
    private extension String {
      var asTwitterDate: NSDate? {
        get {
            let dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
            dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
            let createdAt = dateFormatter.dateFromString(self)
            return createdAt
        }
      }
    }
    

    After this your application should load and show all data correctly.