注册 登录
主题 : [iPhone类代码] 简单的多线程调用
级别: 风云使者

UID: 191
精华: 5
发帖: 424
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
注册时间: 2008-06-27
最后登录: 2015-04-16
0 楼:  发表于: 2009-03-20 18:45    发自: Web Page

[iPhone类代码] 简单的多线程调用    (在iOS代码库中浏览本帖)

在主线程里加入一个loading画面……
  2 {
  3     [window addSubview:view_loading];
  4     [NSThread detachNewThreadSelector:@selector(init_backup:) toTarget:self withObject:nil];
  5 }
可以通过performSelectorOhMainThread更新UI元素,比如设置进度条等等。最后消除loading画面,载入主View。
  7 - (void)init_backup:(id)sender
  8 {
  9     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
10
11     //  ...
12     int i = status;
13     [self performSelectorOnMainThread:@selector(show_loading:) withObject:[NSNumber numberWithInt:i] waitUntil    Done:NO];
14
15     [view_loading removeFromSuperview];
16     [window addSubview:tabcontroller_main.view];
17     [pool release];
18 }

清空我的评分动态本帖最近评分记录: 共威望条评分记录
gagaga 贡献值 +5 2008-09-19
隐藏评分记录
级别: 风云使者

UID: 191
精华: 5
发帖: 424
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
注册时间: 2008-06-27
最后登录: 2015-04-16
1 楼:  发表于: 2009-03-20 18:47    发自: Web Page
没加语法,不好意思:


{
    [window addSubview:view_loading];
    [NSThread detachNewThreadSelector:@selector(init_backup:) toTarget:self withObject:nil];
}

- (void)init_backup:(id)sender
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    //    ...
    int i = status;
    [self performSelectorOnMainThread:@selector(show_loading:) withObject:[NSNumber numberWithInt:i] waitUntilDone:NO];
    
    [view_loading removeFromSuperview];
    [window addSubview:tabcontroller_main.view];
    [pool release];
}


级别: 版主

状态: 连续签到 - [144天]
UID: 491
精华: 6
发帖: 1766
可可豆: 112205 CB
威望: 112852 点
在线时间: 8537(时)
注册时间: 2008-08-19
最后登录: 2019-05-19
2 楼:  发表于: 2009-03-21 00:35    发自: Web Page
為何這裡要置一個int i = status; ?  大哥給解釋下
引用
引用楼主superarts于2009-03-20 06:45 PM发表的 [iPhone类代码] 简单的多线程调用 :
在主线程里加入一个loading画面……
  2 {
  3     [window addSubview:view_loading];
  4     [NSThread detachNewThreadSelector:@selector(init_backup:) toTarget:self withObject:nil];
  5 }
.......

 Developer
------------------------------------------------------------
Η αγάπη ποτέ δεν αποτυγχάνει.
愛是永不止息。
Love never fails.

    --《圣经.新约》哥林多前书第13章
级别: 骑士
UID: 2380
精华: 0
发帖: 22
可可豆: 2966 CB
威望: 2966 点
在线时间: 338(时)
注册时间: 2009-02-24
最后登录: 2016-12-29
3 楼:  发表于: 2009-03-21 01:24    发自: Web Page
The argument to pass to the method when it is invoked.Pass nil if the method does not take an argument.
给它自己show loding方法传了个int值进去,估计方法里用来识别状态的。
级别: 风云使者

UID: 191
精华: 5
发帖: 424
可可豆: 74253 CB
威望: 74253 点
在线时间: 2874(时)
注册时间: 2008-06-27
最后登录: 2015-04-16
4 楼:  发表于: 2009-03-21 14:11    发自: Web Page
是的,i是线程函数里控制进度用的(虽然例子里没写出show_loading),提示show_loading的进度条状态。
级别: 圣骑士

UID: 2229
精华: 1
发帖: 71
可可豆: 6505 CB
威望: 6505 点
在线时间: 388(时)
注册时间: 2009-02-16
最后登录: 2010-02-12
5 楼:  发表于: 2009-03-25 21:39    发自: Web Page
正好需要写个进度条,研究一下。
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2590(时)
注册时间: 2009-02-07
最后登录: 2019-04-23
6 楼:  发表于: 2009-03-27 14:31    发自: Web Page
不是很清楚。。。。。。。。。。。。。。
汉字字典 -2018最新专业版
级别: 骑士
UID: 1949
精华: 0
发帖: 38
可可豆: 3643 CB
威望: 3793 点
在线时间: 1798(时)
注册时间: 2009-01-20
最后登录: 2018-08-22
7 楼:  发表于: 2009-06-10 14:29    发自: Web Page
留下足迹。。。。
谦虚做人,认真做事!
级别: 新手上路
UID: 2949
精华: 1
发帖: 12
可可豆: 591 CB
威望: 591 点
在线时间: 68(时)
注册时间: 2009-03-13
最后登录: 2016-08-31
8 楼:  发表于: 2009-06-11 15:28    发自: Web Page
这个和使用NSOperationQueue, NSInvocationOperation有什么区别吗
级别: 侠客
UID: 5488
精华: 0
发帖: 16
可可豆: 2000 CB
威望: 2000 点
在线时间: 235(时)
注册时间: 2009-05-06
最后登录: 2016-03-27
9 楼:  发表于: 2009-06-15 16:05    发自: Web Page
Re:[iPhone绫讳唬鐮乚 绠
璋?簡  寰堥《鐢
做一个徘徊在牛A 和 牛C 之间滴人.........

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部