发表于: 2016-12-10 00:42:50
1 1047
今天完成的事情:复习了面向对象编程的基础知识。
明天计划的事情:复习继承
遇到的问题:OC中如判断已经到字符串结尾了,然后换行判断下一行,直到读取完所有字符串。
收获:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
FILE *wordFile = fopen ("/Users/maweijiang/Desktop/words.txt", "r");
char word[100];
while (fgets(word, 100, wordFile))
{
// strip off the trailing \n
word[strlen(word) - 1] = '\0';
NSLog (@"%s is %lu characters long", word, strlen(word));
}
fclose (wordFile);
return 0;
}
想吧这个代码用第十章初始化的方法重新实现以下,但是不知道如何判断已经到字符串结尾换行继续读取。
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSMutableString *string = [NSMutableString stringWithCapacity:42];
NSError *error = nil;
NSStringEncoding encoding = NSUTF8StringEncoding;
string = [[NSMutableString alloc] initWithContentsOfFile:@"/Users/maweijiang/Desktop/words.txt" encoding:encoding error:&error];
NSUInteger length =[string length];
NSLog (@"%@ is %lu characters long", string, (unsigned long)length);
}
但是还是实现了一些功能。
继续深入OC的面向对象思想,id 表示标识符identifier是一种泛型,而已用来引用任何类型的对象。
类:表示对象类型的结构体,对象通过类来获取自身的各种信息,执行每个操作需要运行的代码,类名首字母大写。
对象:包含值和指向其类的隐藏指针的结构体。
终于明白API的意思,就是接口的意思,你只能看到方法名参数,具体怎么实现不会让你看到,这就开源和闭源的区别吧。
@interface ABC :NSObject
{
Color red;
}
- (void) setColor: (Color) red;
@implementation ABC
- (void) setColor: (Color) c
{
Color = c;
}
接口中参数名可以让我们清楚的知道参数正真的作用,但是在实现中一定要区分实例变量和参数名称。在OC调用方法时会有一个self的秘密隐藏参数将被传递给接收对象,而参数引用就是这个接受对象,self.Color = c;就是一个set赋值。
评论