This is bad.  Do you/we have any idea why this magically started working?

Sent from my iPad

On Sep 22, 2014, at 1:07 PM, Charles Jenkins <cejw...@gmail.com> wrote:

> Well, thank you to anyone who spared any thought for this problem. After I 
> added the test below, with reconstitutedStructureDict and reconstitutedProj, 
> I discovered that everything started working and the files could be written 
> to and read from disk without error. Then I was able to go back and delete 
> the “reconstituted” test lines, and everything still works. I have no 
> explanation.  
> 
> --  
> 
> Charles
> 
> 
> On Sunday, September 21, 2014 at 19:10, Charles Jenkins wrote:
> 
>> Just as a test, I changed my writer method to immediately try to interpret 
>> the JSON data and reconstitute the project’s data:
>> 
>>    let structureDict = theProject.getStructureDictionary()  
>>    let jsonData = NSJSONSerialization.dataWithJSONObject( structureDict, 
>> options: nil, error: outError )
>>    if let reconstitutedStructureDict = 
>> NSJSONSerialization.JSONObjectWithData( jsonData!, options: nil, error: 
>> outError ) as? NSDictionary {
>>      var reconstitutedProj = 
>> DocumentNode.readFromWrapperViaStructureDictionary( parentWrapper: 
>> theFileWrapper!, dictionary: reconstitutedStructureDict )
>>    }
>> 
>> All this works: reconstitutedStructureDict is a copy of structureDict, and 
>> reconstitutedProj is a copy of theProject. And the JSON file that gets 
>> written out appears okay, so my problem seems to be that 
>> NSFileWrapper.regularFileContents isn’t returning usable data.
>> 
>> —
>> 
>> Charles Jenkins
>> 
>> 
>> On Friday, September 19, 2014 at 11:45 AM, Charles Jenkins wrote:
>> 
>>> My document structure is a file wrapper containing a bunch of RTF documents 
>>> and a file called structure.json which describes how they relate to one 
>>> another.
>>> 
>>> I write out the structure file like this:
>>> 
>>>    let structureDict = theProject.getStructureDictionary()  
>>>    let jsonData = NSJSONSerialization.dataWithJSONObject( structureDict, 
>>> options: nil, error: outError )
>>> 
>>>    writeFileToWrapper(  
>>>      parentWrapper: theFileWrapper!,
>>>      filename: structureFileName,
>>>      data: jsonData,
>>>      err: outError
>>>    );
>>> 
>>> 
>>> I’m not including the bodies of getStructureDictionary() or 
>>> writeFileToWrapper() because they seem to work just fine. The 
>>> structure.json file appears in my output package, and if I open it using 
>>> TextWrangler, I see exactly the JSON content I expect, stored in UTF8 
>>> encoding.
>>> 
>>> The thing is, my app can’t read it back in. Here’s the function that’s not 
>>> working:
>>> 
>>>  override func readFromFileWrapper(  
>>>    parentWrapper: NSFileWrapper!,
>>>    ofType typeName: String!,
>>>    error outError: NSErrorPointer
>>>  ) -> Bool
>>>  {
>>>    if let fw = parentWrapper.fileWrappers[ structureFileName ] as? 
>>> NSFileWrapper {
>>>      if let data = fw.regularFileContents? {
>>>        let debug: String = NSString( data: data, encoding: 
>>> NSUTF8StringEncoding )
>>>        let obj: AnyObject? = NSJSONSerialization.JSONObjectWithData( data, 
>>> options: nil, error: outError )
>>>        if let structureDict = obj as? NSDictionary {
>>>          var proj = DocumentNode.readFromWrapperViaStructureDictionary( 
>>> parentWrapper: parentWrapper, dictionary: structureDict )
>>>          theProject = proj
>>>          theFileWrapper = parentWrapper
>>>          return true
>>>        }
>>>      }
>>>    }
>>>    return false;
>>>  }
>>> 
>>> 
>>> I expect I’ll find bugs in readFromWrapperViaStructureDictionary() if I 
>>> ever call it, but I never get that far.
>>> 
>>> With Swift and Xcode, stepping line-by-line through code it a bit confusing 
>>> because the current line indicator bounces all around, sometimes appearing 
>>> on lines of code already executed. But to be best of my belief, my problem 
>>> is that obj can’t be converted to an NSDictionary. I inserted the debug: 
>>> String to see what’s read from the file, and it comes back as garbage.
>>> 
>>> Is calling regularFileContents the wrong way to read up my JSON file?  
>>> 
>>> —
>>> 
>>> Charles Jenkins
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/zav%40mac.com
> 
> This email sent to z...@mac.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to