I uploaded a new version of the ASObj-C database, ASObj-C Database a14.fmpur.zip, to Dropbox. The download link is:
The ASObj-C Database a14.fmpur.zip has a TextEdit copy of the database help file and a TextEdit copy of the database glossary for anyone who wants to look at them.
For anyone who doesn’t have copy of the app to run the file it is uploaded to dropbox. The download link is:
I was inspired by something Jim wrote and I included a much more advanced sample that show how to use spotlight metadata directly from a script. It is one of my favorite things to do with ASObj-C. The script is pretty simple to use. You tell the script where to search for files and what to search for in those files. That’s it. The actual samples are the latest additions to the database with creation dates of 1/14/2017. The creation dates can be seen from the class items window.
Most of the new stuff is from something I call the “Inheritance path windows.” I just copied some things out of the help to explain this.
All classes in ASObjective-C inherit from NSObject. A subclass is a class that takes somethings from it’s parent, and for the rest the subclass creates new things or redefines things that are in the parent class. The original parent class is called a super class of of the newly defined subclass. An inheritance path is all the unique paths starting at NSObject and ending at some unique subclass where that class has no subclasses.
The reason this is of interest is because when figuring what a class can do it is not enough to read the documentation about a class. The superclass of the class in question would be passing on things to the class in question through inheritance. But the same is true of the superclass of the superclass all the way up to to NSObject. Knowing what all the classes in the inheritance chain do from the class being used up to NSObject give the scripter the greatest power when working with ASObj-C.
The first new window is called “Display Inheritance Path”
With this in mind there are two different windows in the database that deal with these inheritance paths. The “Display Inheritance Path” window is designed to give someone a quick overall summary of what is available for ASObj-C. There are class names down the left side of the window. Each time a class is a subclass, of the class listed directly above it, the line with the subclass is indented. To the right of this vertical list is the beginning of a short description of what each class does. The classes with not documentation has the class name grayed out.
With the class name and class description on the same line it gives a quick overview of all the classes. Clicking the class name in the far left column will bring up the full text of the short class description at the bottom of the screen. If you do an “Edit” menu “Copy” both the class name and full short description are copied to the clipboard.
This layout in the database does not have a live search because removing class names from the list would nullify the display of the class structure. Also the usual “Show All,” “Show Omitted,” and “Omit Record” in the upper left corner of the window are not present for the same reason. In the upper right of the window there is a “Search Inheritance path” button that brings up a standard search dialog which allows the “class list” and “descriptions” to be searched. The “Same search again” button just repeats the last search. The text of the previous search is shown above the button.
The advantages of this approach is the inheritance chain can clearly be seen and there is information about what the classes themselves do. The disadvantage of this approach is that it is not as straight forward as the second approach.
The second is new window is called “Search inheritance paths”
This search is a different way to search the inheritance path. It is more straight forward in its use but because of the way it is laid out summaries of what the classes do can’t be displayed in this layout. In this search there is a live search. To use this search just type the name of the class name you are working with and unwanted inheritance paths will disappear with each key press until you have the desired inheritance path. As with the “Display inheritance paths” layout the indents in “Search inheritance paths” also indicates subclasses. But in this layout the entire inheritance chain is listed from NSObject down to the class being looked at for each line in the window. So as parts of the list disappear the inheritance paths are still preserved.
I did these two window after discovering just how hard it is to find a complete list of classes and showing subclasses.
Other then the two search windows I added some more to the glossy. There are now 73 words in the glossary. The only thing left to do for the Alpha part is the actual search keys for the database so people don’t have know what they’re looking for before they can find it.
Right now the other big things is comments from anyone about the database. Complaints and things that are liked are both helpful. The more input I get the better the database.