become an xcode 续

第七章:循环

1:for 

循环次数必须是整数,因为你没有办法循环2.7次

int x; for (x = 1; x <= 10; x++) { NSLog(@"Julia is a pretty actress."); } NSLog(@"The value of x is %d", x);

 

 

 

2:while () { }和do {} while ()

   

int counter = 1; while (counter <= 10) { NSLog(@"Julia is a pretty actress.\n"); counter = counter + 1; } NSLog(@"The value of counter is %d", counter);

 

 

 

int counter = 1; do { NSLog(@"Julia is a pretty actress.\n"); counter = counter + 1; } while (counter <= 10); NSLog(@"The value of counter is %d", counter);

 

 

 

 

第八章:带有图形界面的程序

 

写道
Objective-C语言把抽象的概念当作对象。

 

 

 

写道
包含对象名称、方法名称,还会包含一个方法会使用到的参数(值)

   Objective-C语言信息传递的一般格式:

       不带参数

            [receiver message];
 

      带参数的形式。

           [receiver message:argument];

所有的工作部分都放在中括号里面,而且要在结尾加上那个永恒不变的分号。在括号里,接收对象的名称放在首位,紧随其后的是方法,用“:”后面加参数

 

 

 

 

 

 

 

你编写的窗口的类如果没有包含常规行为的代码时,信息会自动地上溯到它所继承功能的原始的类那里(称作“父类superclass”)

 

如何去执行你自己定义的行为而不是从父类那里继承来的方法??    

写道
你自己编写的方法要使用和苹果定义的关闭窗口方法一样的方法名称

 

 

调用父类提供的方法    

          [super close];

 

 

写道
所有类里面,顶级的是被称作“对象类”(NSObject)的类。几乎所有的你创建或使用的类都直接或间接的是对象类的“子类”(subclass)。

 

 

 

 

 

 

 

第九章寻找方法

第十章:awakeFromNib方法

第十一章:指针

写道
一个指针变量就是一个包含其它的变量地址的变量。
只要存在一个变量,你能够通过在它前面写上符号“&”来得到它的地址。比如要得到x的地址则写成“&x”。

  

写道
表达式&x赋值,将返回变量x的在内存中的地址而不是存储在其中的数值。地址是表示电脑的内存一个特定位置的数值

   

写道
在指针变量前面加一个星号“*”得到的是指针所指向的内存存储空间内的 数值

    

写道
指针之所以有用是因为有时候你不需要变量的数值,但需要用到变量的地址

  

写道
我们定义一个指针变量的时候,需要声明指针指向的数据是何种类型

  

 

第十二章:字符串

写道
,为什么“@”这个有趣的符号总是出现?在Objective-C语言是C语言的一个变种,它自有一套处理字符串的方法。为了区分这种新型的字符串,Objective-C语言使用了“@”符号。
      那么Objective-C语言的字符串相比C语言的字符串有哪些改进?Objective-C语言的字符串使用Unicode编码来代替ASCII编码。Unicode字符串几乎不受语言限制,甚至可以是中文或者是罗马
字母。

 

NSString *favoriteActress = @"Julia";
指针变量favoriteActress指向内存中的一个位置,这个位置存储着字符串“Julia”。

 

写道
由类 NSString创建的字符串被叫做固定字符串,因为它不可修改。

 

写道
NSMutableString,这个类创建的字符串是可以被修改的

  

写道
你可能希望修改一个已经存在的字符串,而不是在创建一个。这时就要用到类NSMutableString的对象来代表你的字符串。类NSMutableString提供了若干修改字符串内容的方法。
比如,方法appendString:

 

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])

 {

     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

     NSMutableString *foo;  

     foo = [@"Julia!" mutableCopy];  

     [foo appendString:@" I am happy"];

     NSLog(@"Here is the result: %@.", foo);

     [pool release];

     return 0;
}

 

写道
方法mutableCopy(由类NSString提供)复制了一个新的可变字符串作为方法信息的接收方

 Objective-C语言并不直接操作对象,而总是借助指针。这就是为什么???

 

写道
事实上,当我们提到Objective-C语言中的“对象”时,我们往往指的是“指向对象的指针”;但是由于我们总是通过指针来操作对象,所以就简称为“对象”了

  

写道
若干变量可以同时代表同一个对象

 

第十三章:数组

写道
数组(array)。一个数组是一组有序的对象列表
在数组中,第一个元素的索引是0,第二个索引是1,以此类推。

 

   通过执行下面这个步骤可以创建数组:
       [NSMutableArray array]

写道
Objective-C语言中,我们可以向类发送信息(原因是类本身也是对象,它是被元类(meta-class)的实例,但本书中不再就此问题做深入探讨)。
在Cocoa的说明文件中,能够直接作用于类的方法(类方法)名称前用加号“+”标示,与前面表示减号“-”的实例方法不同

 

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *myArray = [NSMutableArray array];
[myArray addObject:@"first string"];
[myArray addObject:@"second string"];
[myArray addObject:@"third string"];
int count = [myArray count];
NSLog(@"There are %d elements in my array", count);
[pool release];
return 0;
}
运行结果如下:
There are 3 elements in my array

 

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *myArray = [NSMutableArray array];
[myArray addObject:@"first string"];
[myArray addObject:@"second string"];
[myArray addObject:@"third string"];
NSString *element = [myArray objectAtIndex:0]; // [2.13]
NSLog(@"The element at index 0 in the array is: %@", element);
[pool release];
return 0;
}

 

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *myArray = [NSMutableArray array];
[myArray addObject:@"first string"];
[myArray addObject:@"second string"];
[myArray addObject:@"third string"];
int i;
int count;
for (i = 0, count = [myArray count]; i < count; i = i + 1)
{
NSString *element = [myArray objectAtIndex:i];
NSLog(@"The element at index %d in the array is: %@", i, element);
}
[pool release];
return 0;
}
运行结果如下:
The element at index 0 in the array is: first string
The element at index 1 in the array is: second string
The element at index 2 in the array is: third string

 

 需要注意的是数组不仅仅可以用于字符串操作。它可以用于任何你希望用数组操作的对象。

 

 

 

第十四章内存管理

 

Cocoa的内存管理技术就是通常所说的“援引计数”

写道
Cocoa给每个对象关联了一个计数器,被称做“保留计数器”。编程时,给对象增加一条援引信息,就要让对象在它的计数器里加一;当减少一次援引,

则减一。当保留计数器的计数为0的时候,对象就知道自己已经不再被援引了,可以被安全的毁掉了。这时候的对象会毁掉自己并释放出内存空间。

 

第十五章信息资源

 

写道
http://osx.hyperjeff.net/reference/CocoaArticles.php
http://www.cocoadev.com
http://www.cocoabuilder.com
http://www.stepwise.com

 

你可能感兴趣的:(C++,cocoa,Objective-C,xcode,osx)