Apple WebObjects 3.5 User Manual

Page 168

Advertising
background image

Chapter 10

The WebScript Language

168

The scope of an instance variable is object-wide. That means that any method
in the object can access any instance variable. You can’t directly access an
instance variable outside of the object that owns it; you must use an accessor
method instead. See “Accessor Methods” (page 171).

The lifetime of an instance variable is the same as the lifetime of the object.
When the object is created, all of its instance variables are created as well and
their values persist throughout the life of the object. Instance variables are not
freed until the object is freed.

As you learned in the chapter “Common Methods” (page 41), a WOApplication
is created when you started a WebObjects application, a WOSession is created
each time a different user accesses that application, and a WOComponent is
created the first time a user accesses that page in the application. Thus, the
variables you declare at the top of the application script (

Application.wos

) exist as

long as the application is running. The variables you declare at the top of the
session script (

Session.wos

) exist for the length of one session. As new users access

your application, new sessions are created, so new copies of the session’s
instance variables are created too. These copies of instance variables are private
to each session; one session does not know about the instance variables of
another session. As sessions expire, their instance variables are freed. Finally,
the variables you declare at the top of a component script are created and
released as that component is created and released.

Note:

Just how often a particular component object is created depends on whether

the application object is caching pages. For more information, see “WebObjects
Viewed Through Its Classes” (page 63).

Assigning Values to Variables

You assign values to variables using the following syntax:

myVar =

aValue

;

A value can be assigned to a variable at the time it is declared or after it is
declared. For example:

NSNumber *myVar1;
id myVar2 = 77;

myVar1 = 76;

The value you assign to a variable can be either a constant or another variable.
For example:

Advertising