Re: A strange constructor question
Re: A strange constructor question
- Subject: Re: A strange constructor question
- From: Jamie <email@hidden>
- Date: Mon, 21 Jun 2004 12:40:22 +0100
Thanks for your response.
On 21 Jun 2004, at 12:28, Daniel Eggert wrote:
I may be missing something here, but why doesn't the call that creates
the NSDictionary itself create its child nodes (NSArrays) to hook them
up with the dictionary?
Because the NSArray's need to be referred to over several calls to the
function. They are constructed in this way, so I cannot simply create
and assign them in one call. The children of the NSDictionary (the
arrays) should ideally not be separate instance variables that can be
referred to as such, and also should not be mutable. The only way i
can think of doing it _is_ to make mutable arrays as instance
variables, so that I can refer to them over several function calls.
That is: The NSDictionary _is_ initialised in one function call, since
that function call will can itself to grab onto those children.
Don't quite get the way you phrased that. Could you expand?
Jamie
On Jun 21, 2004, at 11:45 AM, Jamie wrote:
Hi there.
I mailed a few days ago explaining that I was working on a project
which initialises various objects by becoming the delegate for an
NSXMLParser.
I have now hit what seems to me to be a difficult design issue.
Basically I have an object that is initialising it's instance
variables using the XMLParser by repeatedly calling
- (void) parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
and dealing with each of the relevant elements in turn. The problem
is that this is not all done during one call to the function, but
over multiple iterations, therefore it makes it impossible to use
things such as an NSDictionary to hold some of the values. Let me
explain in more detail:
The object in question describes a software suite, and has instance
variables such as "Name", "Blurb" etc... It also has to hold data
about the various locations of it's data items (files and folders
associated with it). So in the XML config file, under the relevant
section I have a section called "data". Under that there is a list
of child elements, either <folder> or <file> elements.
What I wanted to to was to have an NSDictionary called "data" as an
instance variable of the object. This would in turn hold two
NSArray's, one called "files" and one called "folders". Each array
would be populated in turn with the relevant information from the
configuration file.
This would work fine if the NSDictionary was initialised from one
function call, since I could build two mutable array's, convert the
to normal arrays, and assign them to an NDDictionary. Over multiple
calls however, this is not possible, since I cannot make the
temporary mutable array's local variables in the mehtod. They must
be instance variables instead, and it seems to me I have to write
some very complicated accessors to make this structure feasible.
Am I going about this the wrong way, or is this the only way to get
things done in this case?
Many thanks for your thoughts.
--
jkp
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP 8.0.3
mQGiBEAvrCkRBADP0l+qGhYxe7VZe8NhHPvHKGfYEzMg/FpZxqRY179JI2EAPM4P
ojR8YuTmFDEPgz+4Ae4IUIJyhJBean5D/CFy3TpHYTUlK3eA1cH7PDNOW7oTGSmM
+zRkD1HnkaPVwylmNvI4RmceA0JuhCi9Y35Bkxa1yBLLB+uRC1Zf4+Ek/QCg/4Jh
161Ewn5UOV2eAmxFFRmyCLsD/jCeNrU4w5i/8YLoVFy3vZYhNsPL299vNc/PmF+h
+NPbbWAgay2UVnyc0lkbtOr+ZiEjgf0ltr3rDrjaF6faxwo8sDE5Tuh1yUUJ5Ngv
VLgyDLn9ChnOxiKYGZeI173JXYYhk3V8eU8qtIdH+IBQeHJjeWJg4dKRNqqDzlaI
r3GmA/9S11g+wKWYwKUNbPqRp29KuiRkINV34EXjAdK20kwb3misSt1x86xUHslq
Egys6T7Ulw1bAFKAWnm4pddv0khVx95reQlk/pIJZym26QSdXORPIjJatEgkQuHX
p5hWVsN4mwak7gKFw6VhJMZGXtT3V/WJgrUUE9AMcMJPQSYneLQsSmFtaWUgS2ly
a3BhdHJpY2sgPGprcEBraXJrY29uc3VsdGluZy5jby51az6JAFcEEBECABcFAkAv
rCkHCwkIBwMCCgIZAQUbAwAAAAAKCRDhFdzdKJk0z8bWAKCbTJ/gTWEpBE4+6uwW
Dn+mGLNi1gCgtQE1xpBMxTY3wjFM7SCT4vUlwGa5Ag0EQC+sKRAIAPZCV7cIfwgX
cqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyD
vWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5
u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98
iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlA
GBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqr
ol7DVekyCzsAAgIH/0aGygku5RCrzJUp3lXlPuvc7BvmwRP0RRO9ktbP4abEZXYp
UcUeRbBcU6E3AukBHf5hgmTcNDNAyQeZA75XZhJTQoAkEM9oVUkV66+KoF307hrG
4dNOlFSBYHe/hiT/khmOlXIfB+SvDWYSjsIrP+JU/F1nxrcAqru5xeUh6Y+qIt4b
JPYNYxwf3+OeaRhQFneN+7oxBgSEl74qHmT79jQKqfllZshrs01PpB1UvG77Rn/I
zadbj29gIFw1Gt2eh5aRIN0F2QxvqeMvZ6APqjutv4i+tm1L3U8JNW8fsCpCKkI6
h6MBJSaW6GWTtCBGA/5IX35cg5HlpbwZw96Y892JAEwEGBECAAwFAkAvrCkFGwwA
AAAACgkQ4RXc3SiZNM/0VACeORa/zYtGyekOwxUXzW5BQqdlsjIAoPhHLTE5Kwcq
2WgOOCUuqD0QoU8e
=/4Ed
-----END PGP PUBLIC KEY BLOCK-----
_______________________________________________
MacOSX-dev mailing list
email@hidden
http://www.omnigroup.com/mailman/listinfo/macosx-dev
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.