Rixstep
 About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Home » Learning Curve » ACP Guru

New Stuff in June

Three new apps coming to ACP users.


Get It

Try It

ACP users get three new applications mid-month June: the ACL beta, Classes, and NSURL.

ACL

ACL.app is the most ambitious of the lot so far and the most useful as well.



The idea is to offer a mini-file manager that also deals with access control lists.

The verdict's still out on ACLs. They're popular on Windows because that system doesn't otherwise have an adequate file permission system. They're opaque on both systems, meaning their implementation is always going to be lugubrious. But if ACLs are in use then admins must be able to deal with them.

Classes

Classes.app is an idea under development and complements the ACP command line utility class. The latter shows methods and instance variables for a given class and recursively as well if that's desired.

$ class -R NSTextView

NSTextView
----------
          isa: A32BCB80 (NSTextView)
  super_class: A32B1680 (NSText)
         name: NSTextView
      version: 00000000
         info: 00000001
               CLS_CLASS
instance_size: 00000054

NSText
------
          isa: A32BC500 (NSText)
  super_class: A32B2980 (NSView)
         name: NSText
      version: 00000000
         info: 00000001
               CLS_CLASS
instance_size: 00000054
        ivars: 1
               offset = 0050, type = @, name = _ivars

NSView
------
          isa: A32BD800 (NSView)
  super_class: A32B0200 (NSResponder)
         name: NSView
      version: 00000000
         info: 00000001
               CLS_CLASS
instance_size: 00000050
        ivars: 12
               offset = 0008, type = {}, name = _frame
               offset = 0018, type = {}, name = _bounds
               offset = 0028, type = @, name = _superview
               offset = 002C, type = @, name = _subviews
               offset = 0030, type = @"NSWindow", name = _window
               offset = 0034, type = @, name = _gState
               offset = 0038, type = @, name = _frameMatrix
               offset = 003C, type = @, name = _drawMatrix
               offset = 0040, type = @, name = _dragTypes
               offset = 0044, type = @"_NSViewAuxiliary", name = _viewAuxiliary
               offset = 0048, type = {}, name = _vFlags
               offset = 004C, type = {}, name = _vFlags2

NSResponder
-----------
          isa: A32BB080 (NSResponder)
  super_class: A25F6060 (NSObject)
         name: NSResponder
      version: 00000000
         info: 00000001
               CLS_CLASS
instance_size: 00000008
        ivars: 1
               offset = 0004, type = @, name = _nextResponder

NSObject
--------
          isa: A25FD8A0 (NSObject)
  super_class: 00000000 (NULL)
         name: NSObject
      version: 00000000
         info: 00000001
               CLS_CLASS
instance_size: 00000004
        ivars: 1
               offset = 0000, type = #, name = isa

The Cocoa version shows both instance variables and their offsets as before but also methods with their addresses. And everything is in 64-bit format.

The old method of working with the Objective-C runtime has been deprecated; starting with Mac OS X 10.5 there's a rich API available that will work on 64-bit platforms as well. Additional data can be added to the application as soon as it's known how people use it.

NSURL

NSURL.app decomposes URLs using the Cocoa NSURL class.

A great deal of network code does this already and in a more portable way but it's of interest to see how the Cocoa class behaves. And this is the app to use to do it. This app too will do more as time goes on.

About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Copyright © Rixstep. All rights reserved.