《Objective-c 编译》(第2版) p92
程序有省略
# import <Foundation/Foundation.h>int main(int argc, const char *argv[])
{
@autoreleasepool{
NSDate *now=[NSDate date]; //变量*now,是个指针变量,对么?
double seconds=[now timeIntervalSince1970]; //这语句,是消息发送语句,其中now,是指针,还是非指针?
}
return 0;
}
程序有省略
# import <Foundation/Foundation.h>int main(int argc, const char *argv[])
{
@autoreleasepool{
NSDate *now=[NSDate date]; //变量*now,是个指针变量,对么?
double seconds=[now timeIntervalSince1970]; //这语句,是消息发送语句,其中now,是指针,还是非指针?
}
return 0;
}
解决方案 »
- 求教高手如何利用iTunesMobileDevice.dll库安装ipa到iphone中
- 求助,关于xcode下使用box2d贴图得问题
- iphone用代码获取textfield里的内容
- 如何将sinaweibo demo project 加入到 Three20UI中
- 求xcode interface Builder iphone 模拟器 下载链接
- QQ空间客户端加载视频的弹窗
- 请问在XCODE5里,一般用什么控件布局的?主要用什么控件布局的?
- 如何为UIToolbar动态添加按钮
- 怎么将block里面的值赋给本类的变量
- APP 提交 App Store 失败
- ios UILabel高度计算问题
- 求助,我不能打开iOS模拟器了
[NSDate date]; date是NSDate这个类的类方法,会返会一个指向当前日期的日期对象,*now就是指向这个实例的指针(其实now就可以理解为当前日期对象,因为一切对象皆之争)double seconds=[now timeIntervalSince1970];
上面已经说了,这个now就是一个对象,这个语句就是简单的调用now对象的timeIntervalSince1970这个方法而已(在oc中调用对象的方法确实是通过发送消息),这个方法的作用是返回从1970年开始到now这个日期为止中间的所有秒数,注意这里有个坑,返回的double中最后3位是毫秒,你要获取秒数的话要去掉最后3位
你的意思是:对象都是指针?1.NSDate *now=[NSDate date];
上面语句,用C语言,可理解为:
函数date,其返回值是类型为:NSDate的指针变量。
再把这个指针变量,赋值给另一个指针变量:*now。
对么?
2.double seconds=[now timeIntervalSince1970];
如果,上面理解对。
now是个指针变量,还是非指针变量?
如果,now是个指针变量。
怎么可以赋值给一个非指针变量: seconds ?
你先不管[nsdate date]这个写法
在oc中通常创建一个对象的写法是这样的
SomeClass *class = [[SameClass alloc] init]
其中有两步,第一部是alloc,这一步的作用就是在内存中分配空间,后面的init是初始化这个内存中的数据
然后SomeClass *是个整体,*表示一个指针指向这个新开辟的内存空间,前面的SomeClass说明这个指针指向的内存是SomeClass类型的数据再简化一点看
int a=10;
这和前面的alloc类似,直接开辟了内存,存储数据10
int *p = &a
这里的p就是指向a的指针,其类型就是int *