I want to ask a question about the objective C. Do the objective C and iOS 4 support the caldav? Thank you very much.
Objective-C is just the programming language. So itself it does not support this kind of stuff. Cocoa Touch is the framework that could support such a thing. But it doesn't. The only thing you can is access calendars from the calendar app. But there is no support to directly deal with CalDAV. But you could for e.g. use a third party lib like libical (http://sourceforge.net/projects/freeassociation/)
Related
The rejection of a recent edit I suggested gave me doubts about something I thought I knew on Objective-C.
I've lived under the assumption that the UIViews are part of iOS, that iOS is a descendant of Objective-C and that Objective-C has no default kits with any views.
I've tried some Google and Stack Overflow searches, but the results didn't seem trustworthy and were mostly about UIViews. Wikipedia seems to mention nothing about this .
Does Objective-C have views? Or is that, as I assumed before, a common misunderstanding?
The problem that I see is that iOS is NOT a descendant of Objective C.
iOS is the operating system (like Windows Linux OSX) whilst Objective-C is a programming language albeit one that most iOS and OSX apps are written in. However there are iOS apps written in Python and other languages,
iOS as such does not have views - these are part of the Cocoa-touch framework which is a set of libraries that run on iOS and can be called with Objective C code. Although in practice for the programmer the difference between calling code in iOS and Cocoa touch is not really clear if you are only writing for iOS devices, the split is clearer in OSX where you can write code just using OSX calls or can use Cocoa frameworks.
As noted the views are part of the Cocoa touch framework. This can be called by any language including Objective - C. Most languages do not include the ability to write GUIS as part of itself they usually make use of separate libraries to do this. For example Objective C has no GUI libraries itself but has had Cocoa touch written for iOS, Cocoa and Carbon (although that mainly uses a C binding) for OSX and GNUStep for Windows and Unix like OSes (and historically NeXTStep, OpenStep, Rhapsody, basically earlier versions of Cocoa, on various OSs and Stepstone's ICPak 201)
Objective-C is the open source programming language. UIKit(iOS) and AppKit(Mac OS) are what provide the visual elements - and this is not open source.
Objective-C itself doesn't have a UI, that's provided by other frameworks.
From what I have understood obj-c's views are part of the UIKit framework : check here
which is designed for constructing GUI applications on the iOS.
I don't think you can use this framework in other obj-c applications but on iOS. Probably there are other frameworks that have views which can be used.
Edit: And yes, good point by #Mark that you are confusing the Operating System with the Programming Language
So basically I want to create a Dynamic Library in OS X that is built utilizing Cocoa (In Obj-C, not C or C++). My question is - how do I do this?
Ultimately I want the library to be loaded by another application (which I know how to do). I just don't know how to create a module utilizing Objective-C.
Thanks!
I suggest creating your own framework instead of a library.
Guide 1
Guide 2
If you're bent on making a Dynamic Lib then check this Guide 3 out. I recommend against dynamic libs because I believe they're banned/frowned upon by Apple when approving iPhone apps.
Frameworks will give you the same functionality, plus a ton more options for resources, headerfiles, etc. Plus, you'll be following Apple's design patterns which means your code will run better.
The two terms seems to be used inter changeably.
Is my understanding correct that Cocoa Touch refers to the framework that handles touch whereas Objective-C is just the syntax and language used to interact with this framework?
Much like WPF and C#?
Yes, Objective-C is just a platform-agnostic programming language, whereas Cocoa Touch is Apple's proprietary framework for writing iPhone/iPad apps, and this happens to be written in Objective C.
I've been programming in VB.net for a while now, and I finally got access to a mac to make ipod apps. What are some useful sites, videos, etc. that could help me get used to Objective C and the Xcode IDE? I've stumbled upon the samples on the apple dev site, but none of them really give good examples which I could learn the syntax of the language from.
Thanks for the help, Objective C is really a big change from VB.net!
Here are some helpful starter references from the Apple site, first for Objective-C itself, then for the Cocoa frameworks.
Learning Objective-C: A Primer
Cocoa Fundamentals Guide
There are also "getting started" videos available from http://developer.apple.com/iphone (you have to register as a developer to get access, but that's free)
You might want to take a look at MonoTouch if you like working with .Net. As far as I'm aware, it only works with C#, but it will let you use the .NET api to program for the iPhone. Might be worth looking into if you don't want to learn Objective C.
I do not have a Mac, or an iPhone. However, the concept of taking C and making it more dynamic towards the idea of smalltalk, python or ruby is really attractive to me. I'd love to start on objective C.
Is objective C just a syntax superset of C or is it really like C. As in, can it be compiled with gcc etc..?
I do most of my programming in Ruby. Objective C seems so much more forgiving than C. You can write native extensions for Ruby in C. Can you write native extensions for Ruby in Objective C?
How can I get started with Objective C outside of owning an Mac/iPhone and having XCode?
Wikipedia says
Today it is used primarily on Apple's
Mac OS X and iPhone OS, two
environments based on, although not
compliant with, the OpenStep standard,
and it is the primary language used
for Apple's Cocoa API though it was
originally used as the main language
on NeXT's NeXTSTEP OS. Generic
Objective-C programs which do not make
use of these libraries can also be
compiled for any system supported by
gcc, which includes an Objective-C
compiler.
Objective-C today is often used in
tandem with a fixed library of
standard objects (often known as a
"kit" or "framework"), such as Cocoa
or GNUstep.
Maybe you should get a Linux vm if you are mainly running Windows and get GNUStep running.
apple contributed the objective c changes back to gcc (not that they had much choice, being GPL). So wherever you can set up gcc, you can set up an objective-c compiler.
Beyond that, the Gnustep environment can give you a bit of the flavor of the original OpenStep/NextStep environment.
Yes, you can write, compile and run objective c programs outside a MAC/IPhone
Please check the link below for details
http://www.otierney.net/objective-c.html#settingup
http://www.faqs.org/faqs/computer-lang/Objective-C/faq/
There's a difference between Objective-C the language, and the frameworks that Apple has built on top of it. Those frameworks consist of a bunch of objects which you can use in your code and are especially helpful if you're targeting the Mac or the iPhone. There are some similar objects for parts of it in GNUStep, but it's not a complete replacement for the Cocoa/etc library and especially doesn't cover anything iPhone related.
GNUStep and the Objective-C language (via gcc) are available for many platforms, and you can write your own programs that use Objective-C objects and interact with any C api from Objective-C.
Objective-C is a superset of C and so is not really more forgiving than C, but it is arguably more forgiving than C++ (an almost-superset of C). You can also mix Objective-C and C++ with GCC but that gets a little complicated, especially regarding exception handling.
For getting started and playing around with the language though, GNUStep and GCC would be a good way to go.
I don't see any compelling reason why you cannot use Objective C for native ruby extensions, except that you won't benefit much. You will still have to use the lower level C Api calls, since as far as i know, there aren't any ruby to objective-c bindings. Additionally, Objective C comes with a fairly substantial library of utility classes that, while helpful, won't easily justify their size and weight in the context of a ruby extension.
You can you this page for simple experiments with ObjC: http://www.codesign.cz/LearnObjC/