其实大多数开发初学者都有一些相同的特点,可以说是一种“职业病”。Most有其他平台开发基础的初学者,看到Xcode就想摩拳擦掌;看到Interface Builder就想跃跃欲试;而看到Objective-C就望而止步,感觉有座大山难住去路,而开山凿洞就是技术人员当仁不让的天职了-.-
        我是个果迷,如果你和我一样对苹果开发—>Mac OS X 或iPhone有兴趣,但一看到Objective-C就头热的话,那就需要对Objective-C作一些简单而又必要的了
一.Xcode,Objective-C,Cocoa说的是什么东西?
Xcode:你可以把它看作是一种开发环境,就像Visual Studio或者Netbeans或者SharpDevelope类似的东东。你可以将Interface Builder比作Visual Studio中用来画界面的那部分功能单独提取出来的程序。
Objective-C:当然是一种编程语言-.-  就像C,C++,Java一样滴~
Cocoa:是一大堆函数东西,你只要会用就行。对,就是当年乔帮主亲口说的“提高编写效率,不是不断编程提高编程能力,而是去消灭70percent的代码”。库,就像MFC或者.NET 或者Swing这类东东。人家已经写好的一堆现成的
二,Objective-C是神马?
下面列出初学Objective-C会提出的问题:
问题一:我在程序中看到大量的减号,中括号和以前见到的有什么区别,还有NS***是神马-.-
1.减号(或者加号)
    减号表示一个函数或者方法或者消息的开始。如:
#import<Foundation/Foundation.h>
#import"Student.h"
@implementation Student
-(int)getAge{
        return age;
}
-(void)setAge:(int)newAge{
        age = newAge;
}@end
2.中括号
    中括号可以认为是调用你刚才写的方法。如:
#import<Foundation/Foundation.h>
#import"Student.h"
int main(int argc,const char * argv[ ])
{
        @autoreleasepool{
                Student *stu = [Student alloc];
                stu = [stu init];
        }
        ;
}
@end
 
 
3.NS***
    史蒂夫 乔布斯当年被人挤兑出苹果公司后创办的一个公司NextStep,里面一整套开发包很是让科学家喜欢,现在的Mac OS就是用NextStep的函数库。
    这些NextStep开发者纪念性的将函数库里面所有的类NextStep缩写打头命名。就是NS***了,诸如:
NSLog
NSString
NSImage
NSURL
NSInteger
...
    在学习时,你会经常看到:
    NSLog(@"%d",myInt);

ne里面的图片

这句话主要是在console里面跟踪使用,你会在console里面看到myInt的值(在XCode里面运行的时候打开dbg窗口即可看到)。而我们在其他开发环境里面可能会比较习惯使用MessageBox这种方式进行调试。

你还可以看到其他名字打头的一些类,比如CF、CA、CG、UI等等,比如

CFStringTokenizer 这是个分词的东东

CALayer 这表示Core Animation的层

CGPoint 这表示一个点

UIImage 这表示iPho

CF说的是Core Foundation,CA说的是Core Animation,CG说的是Core Graphics,UI说的是iPhone的User Interface……还有很多别的,等你自己去发掘了。

问题二:#import这类玩意是什么?

1.#import
你可以把它认为如#include一样的。
 
 
三,其他一些东西
1.id
Objective-C中有一种特殊的数据类型id。在Objective-C中一切数据都是指针形式保存。你获得的就是这个对象在内存中的位置。
2.BOOL,YES,NO
你可以认为YES是c#或Java中的true,NO表示false。而实际上YES是1,NO是0,BOOL本身就是个char。
3.nill
Objective-C中的NULL就这么样写,表示空指针。
4.为什么是@"字符串"而不是"字符串"
"字符串"是C的字符串,@“字符串”是把C的字符串转换成NSString的一个简写。
在需要NSString的地方才需要转换,例如NSLog里。
在需要C String的地方还是要用"字符串"的。
另外,@""是不支持中文的,NSLog(@"字符串")是绝对输不出中文的,『把Debugger的LLDB修改成GDB就可以显示中文了。』(多谢大家指点)
 
四,总结
1.Objective -C 只是一门编程语言,不是火星语,只要我们用心学再配以恰当的方法,就能够融会贯通。
2. http://www.cocoachina.com/加入收藏夹,看不明白代码时,就来看看一些牛人的好文。
3.学习一门语言最好就是在用中学,这就和学外语一样,你会说自然就会读。给自己设立一个简单的目标,比如做一个简单的程序,然后一点点解决问题。这样学习起来比只看例子快得多。
4.看看苹果关于Objective-C官方文档。

初学Objective-C语言需要了解的星星点点的更多相关文章

  1. 初学Objective - C语法之代码块(block)

    一.block声明 1.无参数,无返回值: void (^sayHi)(); 2.有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block ...

  2. iOS开发核心语言Objective C —— 全部知识点总结

    本分享是面向有意向从事iOS开发的伙伴及苹果产品的发烧友,亦或是已经从事了iOS的开发人员,想进一步提升者.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基 ...

  3. iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法

    本分享是面向有意向从事iOS开发的伙伴们.或者已经从事了iOS的开发人员.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础,建议您先翻阅我之前分享的iOS ...

  4. 【转】从Go、Swift语言出发

    Google于2009年第一次提出了Go的构思,Facebook在去年春天引入了Hack,随后不久Apple也发布了其Swift语言. 在战争中,胜利者写历史书:在科技中,赢的公司都在写编程语言.互联 ...

  5. 从Go、Swift出发:语言的选择需谨慎

    本文转自 : http://www.csdn.net/article/2014-12-09/2823025 摘要:无论是开源的Go,还是闭源的Swift,新的语言总是利弊一体.不过可以确定的是,新的语 ...

  6. Windows下搭建objective C开发环境

    摘自:http://blog.csdn.net/zhanghefu/article/details/18320827 最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开 ...

  7. Objective C Runtime 开发介绍

    简介 Objective c 语言尽可能的把决定从编译推迟到链接到运行时.只要可能,它就会动态的处理事情.这就意味着它不仅仅需要一个编译器,也需要一个运行时系统来执行变异好的代码.运行时系统就好像是O ...

  8. Windows在结构objective C开发环境

    对于近期打算iPhone.iPod touch和iPad开发一些应用程序,所以.需要开始学习Objective C(苹果推出的类似C语言的开发语言).因为苹果的自我封闭的产业链发展模式(从芯片.机器. ...

  9. Objective C语言中nil、Nil、NULL、NSNull的区别

    以下内容是基于搜集整理的网上资料,供参考. nil:指向Objective C语言中对象的空指针,其定义值为(id)0. Nil:指向Objective C语言中类(Class)的空指针,其定义值为( ...

随机推荐

  1. PNG和Gif及JPEG图片格式比较

    Gif格式特点 透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明). 动画Gif这种格式支持动画. 无损耗性Gif是一种无损耗的图像格式,这也意 ...

  2. Git fetch和git pull的区别

    Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log - ...

  3. Office 365 Licence使用情况统计

    负责采购的同事需要知道目前公司使用了多少License,但是通过O365控制台界面似乎无法直接导出License使用量的信息,于是让我帮忙从后台统计一下. $mail_text = Read-Host ...

  4. 为什么匿名内部类的参数必须为finalhttp://feiyeguohai.iteye.com/blog/1500108

    1)  从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自 ...

  5. Electronic oscillator

    https://en.wikipedia.org/wiki/Electronic_oscillator An electronic oscillator is an electronic circui ...

  6. 一步一步来做WebQQ机器人-(五)(发送消息||完结)

    × 本篇主要是: 发送QQ消息(to:好友,群),以及对小黄鸡抓包利用它的语言库 本文是WebQQ流程的最后一章 最后一章内容不多但我还是啰嗦,可能对大部分人都已知晓的流程方法我也会介绍一下 前面几个 ...

  7. 汇编语言标记寄存器标记位_NV UP EI NG NZ AC PE CY

    在8086CPU中,有一种标记寄存器,长度为16bit: 其中存储的信息被称为程序状态字(Program Status Word,PSW),以下将该寄存器简称为flag. 功能:1)用来存储相关指令的 ...

  8. JSP数据交互

    JSP数据交互   一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%>二.注释 1 ...

  9. SVM经典论文

    1. P. H. Chen, C. J. Lin, and B. Schölkopf, A tutorial on ν-support vector machines, Appl. Stoch. Mo ...

  10. laravel 在windows中使用一键安装包步骤

    安装 PHP 注意一:Laravel 5.0 开始对 PHP 版本的要求是 >=5.4,Laravel 5.1 要求 PHP 版本 >=5.5.9,所以,建议大家尽量安装 5.5.x 的最 ...