• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 42  文章 - 3  trackbacks - 0
            <2012年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            網頁收藏

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            Objective-C,is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it.[1] Objective-C is the primary language used for Apple's Cocoa API, and it was originally the main language on NeXT's NeXTSTEP OS. Generic Objective-C programs that do not use these libraries can also be compiled for any system supported by gcc or Clang.

            1. Define and implement a class
            int the *.h file
            @interface ClassName : ItsSuperclass
            {
            instance variable declarations
            }
            //method declarations
            + alloc; //class methods are preceded by a plus sign can be used by class objects,
            - (void)display;// instance methods are marked with a minus sign can be used by  instances of class
            Class methods are methods which are declared as static. The method can be called without creating an instance of the class. Class methods can only operate on class members and not on instance members as class methods are unaware of instance members. Instance methods of the class can also not be called from within a class method unless they are being called on an instance of that class.

            Instance methods on the other hand require an instance of the class to exist before they can be called, so an instance of a class needs to be created by using the new keyword. Instance methods operate on specific instances of classes. Instance methods are not declared as static.

            @end
            in the *.m file
            @implementation ClassName : ItsSuperclass
            {
            instance variable declarations
            }
            //method definitions
            -(void)display
            { // implement }
            @end

            Declaring a Class, notes:
            1 Every class should subclass NSObject;
            2 class that inherits NSObject Provides a lot of basic functionality, including memory management;
            3 No constructors but Apple uses conventional initializers
            4 Override –[NSObject dealloc] to free resources and memory, Always call super’s implementation
            Never access any ivar or call methods after the call to [super dealloc].
            Never call dealloc directly!

            2. Calling method
            [object method];  
            [object methodWithInput:input];

            3.Creating Objects

            example:NSString* myString = [[NSString alloc] init];

            This is a nested method call. The first is the alloc method called on NSString itself. This is a relatively low-level call which reserves memory and instantiates an object.
            The second piece is a call to init on the new object. The init implementation usually does basic setup, such as creating instance variables. The details of that are unknown to you as a client of the class.
            In some cases, you may use a different version of init which takes input:
            NSNumber* value = [[NSNumber alloc] initWithFloat:1.0];

            4 Muti-input function
            (method type) FuncName: (type of arg 1) name of arg1 Name of arg2: (type of arg2) arg3 name …. ;
            example;
            -(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName;

            5 Difference between C and Objective C
            BOOL,YES,NO:YES is equal to the true in C# or Java,NO is equal to false。But the value of YES is 1,NO is 0
            nil means a null pointer.
            ”String” is a C string, @”"convert a C string to NSString.

            define the access type:
            @property( attributes) type name; attributes includes readwrite readonly assign retain copy noatomic
            example: @property(readwrite, assign) int fido;
             

            Basic Constructs

            Objective-C Summary

            Language Example Description
            [ class_name method ];
            object = [[ class_name alloc] init ];
            object = [ class_name new ];
            [ object method ];
            [ object free ];
            [ object release ];
            class_name *object;
            object = [[ class_name alloc] init ];
            object = [ class_name new ];
            [ object method ];
            [ object free ];
            [ object release ];
            class_name *object;
            Invoking methods. Some methods sent to class, some to object.
            alloc/init are the same as new.

            For objects derived from Object class.
            For objects derived from NSObject.

            You can’t instantiate an object on the stack; you can only have pointers to them.
            @interface class_name : base_class
            {
            int data_member;
            }
            - (return_type) object_method;
            + (return_type) class_method;
            @end
            int data_member;
            }
            - (return_type) object_method;
            + (return_type) class_method;
            @end
            Class declaration.
            @implementation class_name;
            - (return_type) object_method
            {
            }
            + (return_type) class_method
            {
            }
            @end
            Class definition.
            @class class_name; Forward declaration of class.
            - (void) method;
            [ object method ];
            - (return_type) method: (type) arg;
            val = [ object method:1 ];
            - (void) method: (type) arg1 arg_name: (type) arg2;
            [ object method:1 arg_name:2 ];
            name is ìmethod:arg_name:î
            [ object method ];
            - (return_type) method: (type) arg;
            val = [ object method:1 ];
            - (void) method: (type) arg1 arg_name: (type) arg2;
            [ object method:1 arg_name:2 ];
            name is ìmethod:arg_name:î
            No argument, no return.

            Single argument with return value.


            If more than one argument, their names are part of the method name. Using the names on calls is optional but recommended.

            Use this name in @selector.
            SEL selector = @selector(method);
            SEL selector = @selector(method:);
            SEL selector = @selector(method:arg:);

            [ object perform:selector ];
            Gives a selector to a method. If it has arguments they are part of the name. A method with one argument ends in a colon.


            Invoke a method specified by a selector.
            id
            id object;
            Object of any type; often used as a return value.
            Notice no *: can hold an object of any type, but if you invoke a method it doesn't have, you crash.
            #import An #include that's only included once.
            self
            [ self method ]
            [ self class ]
            [ self method ]
            [ self class ]
            The object whose method is being executed.
            Invoke one of your own methods.
            Returns the class you belong to; useful if you've been subclassed.
            super
            [ super method ];
            [ super method ];
            The parent object; always exists because everything is derived from Object or NSObject.
            class_obj = [ class_name class ];
            class_obj = [ object class ];
            f = [ object isKindOf:class_obj ];
            f = [ object isMemberOf:class_obj ];
            f = [ object respondsTo:selector ];
            f = [ class_name instancesRespondTo:selector ];
            Gives the class object for the named class.
            Gives the class object for the named object.
            Is object a member of class_obj or one of its descendants?
            Is object a member of class_obj ?
            Can object respond to the method described by the selector?
            Can instances of the given class respond to the method?
            f = [ object isKindOfClass:class_obj ];
            f = [ object isMemberOfClass:class_obj ];
            f = [ object respondsToSelector:selector ];
            f = [ object isMemberOfClass:class_obj ];
            f = [ object respondsToSelector:selector ];
            NSObject versions of the introspection messages.
            @public
            @protected
            @private
            @protected
            @private
            You can specify scope for data members only.
            Allows access via object->data_member.
            The default for instance variables.
            Only methods of this class (not derived classes) can access this member.
            @interface class_name(category)
            @interface class_name(category) <protocol>
            Categories define new methods or data members for an existing class.
            You can override a method from the original class definition, but then that original is lost; subclassing might be better.
            @protocol p1
            - methods
            @end
            @protocol p1 <p2>
            @interface class_name : base_class <p1, p2>
            f = [ object conformsTo: @protocol(p1) ];
            id <p1> object;
            id <p1, p2> object;
            @protocol p1 <p2>
            @interface class_name : base_class <p1, p2>
            f = [ object conformsTo: @protocol(p1) ];
            id <p1> object;
            id <p1, p2> object;
            Protocols define a set of methods shared between classes. You must define these methods, but don't declare them in the interface.

            A protocol can include another one.
            This class is based on two protocols.
            True if the object conforms to a protocol; if so you can use all its methods.

            Restricts the object pointer to a type that conforms to these protocols.
            @import url(http://www.shnenglu.com/cutesoft_client/cuteeditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
            posted on 2012-05-18 14:31 鷹擊長空 閱讀(285) 評論(0)  編輯 收藏 引用
            久久久久久久久久久精品尤物| 久久精品99久久香蕉国产色戒| 久久99热国产这有精品| 亚洲国产精品久久| 狠狠色丁香久久婷婷综合蜜芽五月 | 麻豆一区二区99久久久久| 无码人妻久久久一区二区三区| 日本强好片久久久久久AAA| 久久精品国产亚洲av高清漫画| 久久精品99无色码中文字幕| 久久99国产精品久久99小说| 久久综合狠狠综合久久| 国内精品伊人久久久久影院对白 | 91久久精品91久久性色| 亚洲婷婷国产精品电影人久久| 久久天堂AV综合合色蜜桃网| 久久青青国产| 久久婷婷综合中文字幕| 无码人妻久久久一区二区三区| 色偷偷88欧美精品久久久| 精品久久久久香蕉网| 久久久久亚洲av毛片大| 久久福利青草精品资源站免费| 久久亚洲中文字幕精品一区| 大蕉久久伊人中文字幕| 国产精品久久久久国产A级| 久久精品国产亚洲av麻豆图片| 久久久久99精品成人片| 日韩一区二区久久久久久| 久久99国产精品尤物| 亚洲AV无码久久寂寞少妇| 久久精品国产亚洲AV影院| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 91精品国产综合久久婷婷| 久久天天躁狠狠躁夜夜网站 | 久久www免费人成看国产片| 97精品久久天干天天天按摩| 麻豆一区二区99久久久久| 久久久久亚洲精品天堂| 久久无码人妻一区二区三区| 久久婷婷国产综合精品|