Home » Learning Curve » ACP Guru
New Stuff in JuneThree new apps coming to ACP users.
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.
|