相关疑难解决方法(0)

如何判断UIViewController的视图是否可见

我有一个标签栏应用程序,有很多视图.有没有办法知道某个特定UIViewController目前是否可以从内部看到UIViewController?(寻找房产)

uiviewcontroller uiview uiwindow ios

543
推荐指数
10
解决办法
23万
查看次数

为什么Objective-C代理通常给予属性赋值而不是保留?

我正在浏览Scott Stevenson维护的精彩博客,我正在尝试理解一个基本的Objective-C概念,即为委托者分配'assign'属性vs'retain'.注意,两者在垃圾收集环境中是相同的.我主要关注的是非基于GC的环境(例如:iPhone).

直接来自Scott的博客:

"assign关键字将生成一个setter,它直接将值赋给实例变量,而不是复制或保留它.这最适用于NSInteger和CGFloat等原始类型,或者你不直接拥有的对象,如委托."

你不直接拥有委​​托对象是什么意思?我通常会保留我的代表,因为如果我不希望他们离开深渊,保留将为我照顾.我通常抽象UITableViewController远离其各自的dataSource和委托.我也保留那个特定的对象.我想确保它永远不会消失,所以我的UITableView总是有它的代表.

有人可以进一步解释我错在哪里/为什么,所以我可以理解Objective-C 2.0编程中使用委托上的assign属性而不是retain的常见范例吗?

谢谢!

cocoa delegates objective-c ios

176
推荐指数
3
解决办法
5万
查看次数

NSURLConnection是否保留其委托?

我的问题摘要:NSURLConnection是否保留其代理人?

详细问题和场景:

我有一个名为JsonDownloader的自定义类,它接收一个URL并返回URL返回的JSON的NSDictionary.

在iPhone应用程序上,我做了类似的事情.(init方法启动整个过程)

- (void)viewDidLoad {
    JsonDownloder *temp = [[[JsonDownloader alloc] initWithURL:urlString returnDataTo:self]];
    [temp release];
    [super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

当JsonDownloader完成下载和解析时,它会对returnDataTo:对象执行回调,在本例中是对象调用对象.

这很好用.即使我在Web服务器响应中引入了30秒的延迟,JsonDownloader仍然存在,并且正确地进行了回调.

所以我的问题是这样:什么让JsonDownloader保持超越事件周期的结束?我明确地发布了它.

我的预感是NSURLConnection必须对其委托进行保留,但我没有在文档中看到任何内容.有人有想法吗?

iphone memory-management objective-c

23
推荐指数
3
解决办法
5817
查看次数