Re: [问题] 请教阵列与指标的基础观念

楼主: uranusjr (←這人是超級笨蛋)   2014-09-14 12:50:02
※ 引述《balaking (看八卦长知识)》之铭言:
: 小弟是Obj-C的非常非常新手,之前一直写的是C#与Java这种OOP语言
: C以前在学校有学过,不过现在几乎都还给老师了
: 目前“精通Objective-C程式设计(第六版)”看到第三章p.40
: 里面有一段程式这样写:
: 1 Fraction *myFraction;
: 2 myFraction = [Fraction alloc];
: 3 myFraction = [myFraction init]
: 4
: 5 [myFraction setNumerator: 1];
在 C# 和 Java 里, 所有东西(除了 primitive types)都是参考
而在 Objective-C 中, 所有东西(除了 C types)都是指标
他们在这部分其实理念一模一样
所以上面这段可以直接转译为这样的 Java 程式
Fraction myFraction;
myFraction = new Fraction(); # Java 的 alloc 与 init 是用 new 一次完成
myFraction.setNumber(1);
在 Objective-C 里没有“参考”的概念
但它用指标模仿的行为其实和 Java 与 C# 的参考一模一样
其实你用 C# 的想法学 Objective-C 在很多时候可以互通
C# 中所有 Object 的子类别都是 reference type
这对应到 Objective-C 所有 NSObject 子类别都是以 pointer 形式存在
而 Objective-C 的 C struct 就对应到 C# struct, 它们都是 value type
在 Objective-C 偶尔会看到的 C 就相当于 C# unsafe mode
后者也可以用类似 C pointer 的写法
说真的你对 C# 与 Java 了解够多的话实在不应该在这里卡住
反而应该在比较偏 C 的部分遇到问题才对
这里根本就一点也不 C, 请不要用 C 的逻辑来想
Objective-C 在用方括号呼叫的地方根本完全是物件导向
感觉你的理解有点怪怪的 :/
作者: akasan (KITO)   2014-01-02 00:43:00
valgrind, 但 windowns 版的没试过XDlinux 上那真的是不二选择了
作者: Linux (Windows)   2014-01-02 00:45:00
我是用 Windows ....>"<

Links booklink

Contact Us: admin [ a t ] ucptt.com