iphone - 您可以从 UITableViewDataSource 函数中访问应用程序委托(delegate)吗?

标签 iphone objective-c cocoa-touch

我正在尝试了解 iPhone 的 SQLite 功能,但在从重写的 UITableViewDataSource 函数读取数据库文件时遇到了一些问题。我将数据库文件位置存储在我的应用程序委托(delegate)中的 ivar(作为 NSString)中,但是当我尝试从重写的 UITableViewDataSource 函数访问该字符串时,它返回一些其他对象。如果我从任何类自己的实例方法访问字符串,它工作正常。

有什么方法可以从覆盖的 UITableViewDataSource 函数中访问应用程序委托(delegate)?

最佳答案

应用程序是一个单例,它维护对应用程序委托(delegate)的引用。您始终可以使用以下方式访问您的应用委托(delegate):

[UIApplication sharedApplication].delegate

您可能需要将返回强制转换为您自己的应用程序委托(delegate)类以消除警告。更好的是,编写一个返回您的 upcast 应用委托(delegate)的访问器:

#pragma mark access to app delegate etc.
+ (MyAppDelegateClass*) sharedAppDelegate; {
    return (MyAppDelegateClass*)[[UIApplication sharedApplication] delegate];
}

关于iphone - 您可以从 UITableViewDataSource 函数中访问应用程序委托(delegate)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/817259/

相关文章:

iphone - 显示 pickerview 和操作表

objective-c - 检查 UITextField 的输入是否仅为数字

ios - 应用程序进入后台时 GCDWebServer 崩溃

iphone - 如何在 xcode4.3 中获取和修改显示屏幕大小

iPhone - 在 NSMutableArray 上使用 addObject 时发生崩溃

iphone - 使用其他用户名登录 FaceBook

ios - 禁用 WiFi 的多点连接

ios - 如何测试位标记的所有字段是否存在于另一个位掩码中?

objective-c - 如何使用分段控制值更改事件加载 View Controller ?

ios - 在 NSString 中添加空格?