关于performSelector用法,为什么没有预期结果

pengfoo 2013-05-22 07:59:12
首先,贴代码:
TestClass.h

#import <Foundation/Foundation.h>

@interface TestClass : NSObject

-(void) outputHelloWorld;
-(void) outputHelloWorldInSeconds;


@end


#import "TestClass.h"

@implementation TestClass

-(void) outputHelloWorld
{
NSLog(@"HelloWord, boy");
}

-(void) outputHelloWorldInSeconds
{

[self performSelector:@selector(outputHelloWorld) withObject:nil afterDelay:1];
NSLog(@"outputHelloWorldInSeconds########");
sleep(3);
NSLog(@"outputHelloWorldInSeconds--------");
}
@end


#import <Foundation/Foundation.h>
#import "TestClass.h"



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

@autoreleasepool
{



TestClass *testObject = [[TestClass alloc] init];
// [testObject outputHelloWord];
[testObject outputHelloWorldInSeconds];

// [testObject release];

}
return 0;
}

为什么[self performSelector:@selector(outputHelloWorld) withObject:nil afterDelay:1];好象没有执行到,没有预期结果?
最后控制台的输出是:
sharedlibrary apply-load-rules all
[Switching to process 650 thread 0x0]
2013-05-22 04:39:20.191 helloworld[650:707] outputHelloWorldInSeconds########
2013-05-22 04:39:23.195 helloworld[650:707] outputHelloWorldInSeconds--------
Program ended with exit code: 0

...全文
192 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33489604 2015-12-24
  • 打赏
  • 举报
回复
performSelector是单线程的
文壁 2013-05-30
  • 打赏
  • 举报
回复
在main()函数中这么写 do { @autoreleasepool { @try { [[NSRunLoop currentRunLoop] run]; } @catch (NSException *exception) { DTLogError(__FUNCTION__, @"%@", exception); } } } while (YES);
hslinux 2013-05-23
  • 打赏
  • 举报
回复
使用向导创建一个带UI的的项目,譬如说基于Single View Application的程序,然后在ViewController.m里面做这样的操作,就可以看到预期的结果了。
pengfoo 2013-05-23
  • 打赏
  • 举报
回复
引用 3 楼 hslinux 的回复:
收回上面说的话,再研究下。不是我上面说的那么一回事。
那是咋回事,请大侠多指点啊
hslinux 2013-05-23
  • 打赏
  • 举报
回复
收回上面说的话,再研究下。不是我上面说的那么一回事。
hslinux 2013-05-23
  • 打赏
  • 举报
回复
换句话说,就是你想要运行的函数,运行时间在程序的生命周期之外。
hslinux 2013-05-23
  • 打赏
  • 举报
回复
还没有执行到该函数,main函数已经运行结束并返回->这样的后果就是程序退出之前无法运行到你想运行的函数。
tubo_true 2013-05-23
  • 打赏
  • 举报
回复
main 函数 上来 就 退出了 运行不到那里

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧