我的应用程序未在iPhone/iPad上运行,但在模拟器上运行良好
我从服务器获取所有数据并使用JSON解析它。得到每个故事后,我做了一个叫MyStory
的课。我的应用程序未在iPhone/iPad上运行,但在模拟器上运行良好
class MyStory: NSObject
{
var location = ""
var storyId = 0
var title = ""
var story = ""
var AllImages = [Image]()
var images = NSArray() {
willSet(newValue){
// print("newvalue \(newValue)")
for obj in newValue {
let img = Image(dictionary: obj as! [String : AnyObject])
AllImages.append(img)
//imagePaths.append(img.imagePath)
let helper = HelperClass()
var imageDetail = "http://www.sleeksolutions.net/saad/" + img.imagePath
helper.imagepath.append(imageDetail)
//print("counter: \(helper.imagepath.count)")
}
}
}
init(dictionary: [String:AnyObject]) {
super.init()
self.setValuesForKeysWithDictionary(dictionary)
}
override func setValue(value: AnyObject?, forKey key: String) {
if key == "images"
{
// print("key = \(key) , value : \(value)")
}
//error occurs here.
super.setValue(value, forKey: key)
}
}
而这个函数被SeeStories
类调用。下面是代码:
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url!)
request.timeoutInterval = 10
request.HTTPMethod = "GET"
let task = session.dataTaskWithRequest(request)
{
(dat, res, er) in
if er == nil
{
do
{
print("m hereeee")
self.serverStatus = true
let jsonObject = try NSJSONSerialization.JSONObjectWithData(dat!, options: .MutableContainers)
let arr = jsonObject as! NSDictionary
//print(jsonObject)
let storiees = arr["stories"] as! NSArray
for obj in storiees{
//Calling to MyStory Class here
let s = MyStory(dictionary: obj as! [String : AnyObject])
self.stories.append(s)
let stat = self.fetch(s)
if stat == false
{
self.saveInCoreData(s)
}
}
}
}
}
检查你得到(您可以使用它创建一个MyStory
对象)的字典。从外观上看,storyId
作为String
返回,您尝试将其保存到long
。 storyId
应设置为String
变量,而不是
class MyStory: NSObject
{
var location = ""
var storyId = "" //THIS instead of = 0
var title = ""
var story = ""...
我可能是错的,但是这是在你的问题中显示的错误日志我最好的猜测。
我做到了这一点,但没有用。你是对的storyId上发生错误我添加异常断点。但我无法解决这个问题。我的应用在模拟器上工作正常。 –
你介意向我们展示一个词典的外观吗?这可能会提供一条线索 – lostInTransit
随着您的帮助StoryId错误得到解决,但它在imagePath上有另一个错误。 类Image:NSObject的{ VAR路径= “http://www.sleeksolutions.net/saad/” VAR图像标识:INT = 0 变种的ImagePath:字符串= “” VAR IMAGEURL:字符串{ 返回自。路径+的ImagePath } 的init(词典:[字符串:AnyObject]){ super.init() //这里是误差 self.setValuesForKeysWithDictionary(字典) } } –
我找到了答案。我的字典传递给我的字符串值,我保存在Int值。所以在init方法中,我确实喜欢这样:
imgid = dictionary [“imageId”]! imageId = String(imgid as!String)!
它的工作...感谢所有:)
添加一个异常断点 – Shubhank
请告诉我'setValuesForKeysWithDictionary'方法 – zylenv
代码是否使用任何外部库? –