diff --git a/objcguide.xml b/objcguide.xml
index 6881a4a..ea3185b 100644
--- a/objcguide.xml
+++ b/objcguide.xml
@@ -4,7 +4,7 @@
-Revision 2.18
+Revision 2.20
@@ -415,6 +415,27 @@ Revision 2.18
@@ -1446,39 +1471,20 @@ Revision 2.18
- We do not allow the use of dot notation to access properties for
- the following reasons:
+ Dot notation is idiomatic style for Objective-C 2.0. It may be used
+ when doing simple operations to get and set a @property
+ of an object, but should not be used to invoke other object behavior.
-
- -
- Dot notation is purely syntactic sugar for standard method calls,
- whose readability gains are debatable. It just gives you another
- way to make method calls.
-
- -
- It obscures the type that you are dereferencing. When one sees:
-
[foo setBar:1]
it is immediately clear that you are
- working with an Objective-C object. When one sees
- foo.bar = 1
it is not clear if foo is an object, or
- a struct/union/C++ class.
-
- -
- It allows you to do method calls that look like getters.
-
- NSString *upperCase = @"foo".uppercaseString;
-
- which is not only confusing, but difficult to spot in a code review.
-
- -
- It hides method calls.
-
- bar.value += 10;
-
- is actually two separate method calls (one to set and one to get)
- and if your properties are not simple you may find a lot of work
- being done in a hidden manner.
-
-
+
+ NSString *oldName = myObject.name;
+ myObject.name = @"Alice";
+
+
+ NSArray *array = [[NSArray arrayWithObject:@"hello"] retain];
+
+ NSUInteger numberOfItems = array.count; // not a property
+ array.release; // not a property
+