I am a newbie to Mac. I have seen people saying that learning a new
programming language each year is worthy to enrich programming skills
.As a beginner to the IT field I feel interesting to explore new
things . I would like to share the knowledge I am gaining in finding
out the difference between C#.NET and Objective C Programming
languages through my blogs so that this will be helpful for any one
moving from C# to Objective C.
A
direct comparison of both the language seams to be awkward as both
are built to use different platform, different frame work, different
development environment. Objective C uses Cocoa and Cocoa touch
frameworks where as C# language is built to use .NET frame work. Both
are rich frameworks in their own purpose and rights as Cocoa and
Cocoa touch targets the Mac OS X & iPhone,iPad respectively and
.NET obviously
the Windows. Similar case with the IDE also, Xcode is the common IDE
used for developing Mac application. And Visual studio the usual IDE
used for coding C#.NET.
To
begin with syntactically Objective C which is advanced form of C by
adding object orientation to it. Where as C# I would say derived from
C++ and JAVA. The major difference in both these language comes in
fact that C# has a dot notation to access methods. Objective C talks
within objects by passing messages. C# releases the head ache
of separating the declaration from implementation of classes and
methods when compared to Objective C. Unlike C#, in Objective C the
classes and methods are declared at one end and implemented at other
end. I would like to introduce the way how Objective C differs
syntactically for declaring class and methods.
For
any xcode project using objective C two files are created by default
one in where the declaration is done called .h file and .m where the
implementation take place.To declare and implement a class and a
method in C#
public
class addition
{
public
void add(int a,int b)
{
//codes
for operation....
//.....
//......
}
}
where
as in Objective C the code is
@interface
addition
{
//variable
declaration
}
-void
add:(int)a:(int)b;
@end
@implementation
addition
-void
add:(int)a:(int)b;
{
//codes
for operation......
//.....
//.....
}
@end
@interface
is the
keyword used to declare a class and not similar to interface in c#
.If you are looking for the interface
equivalent
of C# in Objective C then it is '@protocol'
in
Objective C. Any class started must end with an '@end'
as shown above. The function 'add' is declared in the class with two
parameters separated by the colon . The implementation is done in .m
file .
To
call a function in C# we go for
addition
addobject = new addition();
addobject.add(5,2);
This
could be accomplished in Objective C through the following codes
addition
*addobject = [[addition alloc]init];
[addobject
add:5:2];
Another
interesting thing that I noticed was the string syntax in objective C
and C#. I have used regular expression in C#.NET where I used @
symbol with strings in double quotes to denote quoted string
literals. Where as in Objective C it denote the CoreFoundation string
.
Another
major fact for any person new to Objective C is the memory
management. C# provides automatic garbage collection and these has to
be done manually in IOS. (ie) every call to alloc should be matched
with end of current scope.I would also like to explain the concept of
memory management in my up coming blogs..
Rashid
Khaleefa..
6 comments:
thats an awesome one
good one rashid! keep going
Rashid,
Good write up. A couple of things though. You are right Obj-C is C extended with object capability. But a better way to look at it is C + SmallTalk. It is the message passing component in addition to objects that bring power to Obj-C.
Obj-C does have auto garbage collection (GC) functionality. However, the iOS framework does not include GC. In iOS5, (ARC) Automatic Reference Counting was made available. ARC is a compiler directive that manages retain and release. GC on the other hand occurs during runtime. The end result is similar - memory management that can occur automatically if one wants.
Finally, there is a dot syntax in Obj-C. Has been since Version 2. Some developers love it some think it makes reading code more difficult then the bracket message syntax. Apple sample code uses it. I ... well like brackets.
Hmm is anyone else experiencing problems with the pictures on this blog loading? I'm trying to determine if its a problem on my end or if it's the blog. Any feedback would be greatly appreciated.
data recovery buffalo
You need to look at this page for some tips on how to write a great dissertation. It may be helpful to do it as soon as possible
Writing a thesis is the worst possible time to have a senior moment. Failing this assignment can bring your grade average plummeting. What is helpful is to find great thesis papers for sale and complete it successfully.
Post a Comment