初始化 Objective-C 类别中的静态变量

2023-11-22

我试图创建一个静态变量来存储图像字典。不幸的是,我能找到的初始化它的最好方法是检查使用该变量的每个函数。由于我是在类别内创建此变量,因此我不能仅在初始化程序内初始化它。有没有更简洁的方法来初始化 navigationBarImages?

static NSMutableDictionary *navigationBarImages = NULL;

@implementation UINavigationBar(CustomImage)
//Overrider to draw a custom image
- (void)drawRect:(CGRect)rect
{
    if(navigationBarImages==NULL){
        navigationBarImages=[[NSMutableDictionary alloc] init];
    }
    NSString *imageName=[navigationBarImages objectForKey:self];
    if (imageName==nil) {
        imageName=@"header_bg.png";
    }
    UIImage *image = [UIImage imageNamed: imageName];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

//Allow the setting of an image for the navigation bar
- (void)setImage:(UIImage*)image
{
    if(navigationBarImages==NULL){
        navigationBarImages=[[NSMutableDictionary alloc] init];
    }
    [navigationBarImages setObject:image forKey:self];
}
@end

__attribute__((constructor))
static void initialize_navigationBarImages() {
  navigationBarImages = [[NSMutableDictionary alloc] init];
}

__attribute__((destructor))
static void destroy_navigationBarImages() {
  [navigationBarImages release];
}

这些函数将在程序启动和结束时自动调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初始化 Objective-C 类别中的静态变量 的相关文章

  • 初始化单例的不同方式

    在 C 和 Java 中 我基本上看到了每个人初始化单例的一种方法 static obj inst null obj getInstance if inst null inst new obj return inst 现在 当我转向 iPh
  • Xcode 5:单元测试未运行

    我创建了一些测试用例 它们都通过了 那是因为它们没有被运行 从 Xcode 中 我得到 Test Suite All tests started at Test Suite All tests finished at Executed 0
  • 转换 [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA], (id)kCVPixelBufferPixelFormatTypeKey, nil];到斯威夫特

    这里出现错误 绞尽脑汁 尝试了各种组合 找不到类型 NSDictionary 的初始化程序 该初始化程序接受类型 object Int forKey CFString 的参数列表 configure the pixel format Obj
  • 如何更改 UIActivityIndi​​catorView 以设置自定义图像?

    好吧 我正在寻找一种方法来更改我的微调器图像并使用自定义图像 有什么建议吗 我创建了一个UIActivityIndi catorView 的子类 https github com cncool CDActivityIndicatorView
  • kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 帧到 UIImage 转换

    我有一个应用程序可以捕获 kCVPixelFormatType 420YpCbCr8BiPlanarFullRange 格式的实时视频来处理 Y 通道 根据苹果的文档 kCVPixelFormatType 420YpCbCr8BiPlana
  • 有没有办法直观地看到精灵套件的 SKPhysicsbody 边界线?

    我在用bodyWithPolygonFromPath定义物理体的体积 我使用http dazchong com spritekit http dazchong com spritekit 获取所需的路径 但路径似乎不正确 我希望查看物理体路
  • 有 Objective-C Web 框架吗?

    有 Objective C Web 框架吗 我发现的唯一框架是 frothkit 我主要寻找一种在 Objective C 中编写 RESTful json Web 服务的方法 GNUStepWeb http wiki gnustep or
  • MFMailComposeViewController 立即关闭

    情况是 MFMailComposeViewController 将被呈现 我看到它已经完成了一半 但后来就被驳回了 这是错误 serviceViewControllerReady 错误 错误域 UIViewServiceInterfaceE
  • 导航时 Internet Explorer 9 中的图像闪烁白色

    我正在使用 XHTML 1 1 CSS 3 0 开发一个网站 但 Internet Explorer 9 出现问题 每次我将页面从 主页 更改为 功能 时 各种图像在填充之前都会闪烁 白色 出现这种 白色闪烁 每次页面更改时 我见过很多堆栈
  • 预填充 UICollectionView 单元重用队列

    问题 我有一个应用程序 只有一个UICollectionView我第一次滚动它时很卡顿 我已将来源范围缩小到正在创建新单元格 2 的事实 使用initWithFrame 因为周围没有可以重复使用的细胞 初始滚动后 重用队列不为空 单元格可以
  • 如何将 UIImage 添加到分组的 UITableViewCell 中,使其圆角?

    我正在尝试将图像添加到分组 UITableView 中的表格单元格 但图像的角未被剪裁 剪切这些内容的最佳方法是什么 除了在 Photoshop 中剪切它们之外 表格内容是动态的 例如 表格中的第一张图像只需将左上角圆角化即可 这是我的解决
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • 如何缩放曼德尔布罗集

    我已经成功实现了维基百科文章中所述的曼德尔布罗集 但我不知道如何放大特定部分 这是我正在使用的代码 void createSetWithWidth int width Height int height Thing void int int
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • Xcode - 发布和分发配置中的 Malloc_Error

    仅当我在设备上选择发布或分发配置时 我才会收到此错误 在模拟器上它运行良好 请问 我错在哪里 cc1obj 4113 malloc mmap size 429379584 failed error code 12 error can t a
  • 如何在导航栏上添加 UIView?

    我需要覆盖UINavigationBar with UIView像这儿 除了使用带有按钮返回的自定义 UIView 作为导航栏之外 还有其他方法可以做到这一点吗 您可以将子视图添加到应用程序的基本视图 UIApplication share
  • 如何使用 didMoveToView 作为 initWithSize ?

    我将 Xcode 更新到版本 6 从那时起 我就无法使用以前在 Xcode 5 中使用 Objective C 编写的代码了 有一些新文件 GameScene h 和 GameScene m 以及 GameScene sks 而不是 MyS
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • Objective-C 点表示法与类方法?

    请注意 我特别指的是点表示法与类方法一起使用 而不是与实例方法一起使用 出于好奇 我想看看如果我尝试在类方法中使用 Objective C 点表示法语法会发生什么 我的实验如下 import

随机推荐

  • Java:从日期获取月份整数

    如何从 Date 对象中获取整数月份 java util Date java util Date date new Date Calendar cal Calendar getInstance cal setTime date int mo
  • 如何从 Tkinter 窗口立即停止 Python 进程?

    我有一个 Python GUI 用来测试我工作的各个方面 目前我有一个 停止 按钮 可以在每个测试结束时终止进程 可以设置多个测试同时运行 但是 有些测试需要很长时间才能运行 如果我需要停止测试 我希望它立即停止 我的想法是使用 impor
  • scrapy使用CrawlerProcess.crawl()从脚本将custom_settings传递给spider

    我正在尝试通过脚本以编程方式调用蜘蛛 我无法使用 CrawlerProcess 通过构造函数覆盖设置 让我用默认的蜘蛛来说明这一点 用于从官方 scrapy 网站抓取引号 最后一个代码片段位于官方 scrapy 引用示例蜘蛛 class Q
  • 导出类的公共属性在 TypeScript 中使用私有类型错误

    C dev OpenCMS Website Frontend Scripts libs sinnovations gt tsc sinnovations listv iewbase ts module amd C dev OpenCMS W
  • 如何将 Enter 键绑定到 tkinter 按钮

    我正在尝试绑定回车键 with a button 在下面的代码中 我试图从条目小部件中获取条目 当按钮bt被按下 它调用enter 获取条目的方法 我还希望通过按回车键 我没有得到想要的结果 在条目小部件中输入的值不会被读取 并且enter
  • 如何在 Kubernetes 中从工作节点找到主节点

    我需要知道我当前的工作节点连接到哪个主节点 我可以通过在主节点中输入 kubectl getnodes 命令来查看工作节点 但我需要从工作节点本身找到主节点 简单来说 kubernetes集群中如何从worker节点找到master节点 您
  • 如何记录 Spring Data JPA 存储库方法的执行时间?

    我有简单的 Spring Data JPA 存储库 public interface UserRepository extends JpaRepository
  • C# 中的匿名类型

    x is compiled as an int var x 10 y is compiled as a string var y Hello z is compiled as int var z new 0 1 2 but ano is c
  • Rails Mongoid 无法进行身份验证 - 失败并出现错误 13:“未授权对 my_db.my_collection 进行查询”

    这个问题据说最新版本的Moped已经解决了 但我仍然遇到这种情况 我有一个 Rails 4 2 应用程序Mongoid 为 MongoDB 数据库创建了一个用户读写 and dbOwner角色 并设置授权 真 in the mong con
  • MPAndroidChart LineChart:使用日期而不是字符串作为 X 轴

    MPAndroid图表折线图默认情况下接受 X 轴字符串 有没有办法将日期设置为 X 轴的数据类型 仅将日期转换为字符串的问题是图表可能会根据数据点而倾斜 例如 如果我在 1 月份有一个数据条目 在 6 月份有 10 个数据条目 则默认情况
  • Shiny - 在输出中使用观察函数调用的结果

    我有一个闪亮的应用程序 其中基于所选选项 列 数据集动态重新计算 重新计算的结果用于向用户显示另一组选项并创建绘图 目前我正在使用observe 读取用户选择 重新计算数据集并更新 UI 但是 当显示输出 图 时 我必须再次重新计算 因为o
  • 无法解析 com.android.support:appcompat-v7:28.0.0

    对此有很多不同的问题 但使用时存在问题v7 28 0 v7 28 v7 28 0 0 rc02但是当我同步我的项目时 我收到此错误 无法解决 app debug compileClasspath 的依赖关系 可以 无法解析 com andr
  • 如何防止 Android 设备从 Qt 应用程序进入睡眠状态

    我正在 Android 上部署 Qt 应用程序 需要防止设备进入待机状态 否则 我的线程会被中断 而且我的 BLE 连接也会丢失 我发现这样 如何以编程方式防止 Android 设备进入睡眠状态 应执行此 Java 代码 PowerMana
  • 如何知道每次通话/短信的 SimSlot 号码?

    您只知道广播接收器中的 sim 插槽号 经过一个月的研究 我得到了一个对我来说效果很好的解决方案 如下所示 首先将 android permission READ PHONE STATE 权限添加到您的清单文件中 实现电话事件接收器 为您的
  • 如何在 android 文本视图中使用 getlinecount()

    我想知道我的文本视图中有多少行 我已经设置了文本视图文本 然后我想获取文本视图中需要多少行 我使用 mytextview getLineCount 但它不起作用 它总是返回 0 有人能帮我吗 您需要发布获取行数的方法 这是示例代码 imag
  • C# Windows 服务自终止服务

    如何让服务自行终止 Environment Exit 将导致应用程序启动 但服务保持运行 任何想法 您可以使用 SCM 从服务本身关闭您的服务 System ServiceProcess ServiceController svc new
  • 启用 CORS 的服务器不拒绝请求

    我正在尝试使用快递Cors使用我的 resitfy 服务器 它似乎并没有拒绝来自其他 ip 的请求 我在本地工作 所以我尝试将 origin 设置为随机公共 IP 但我的所有请求仍在处理中 这是我的路线 module exports fun
  • Hibernate:删除多对多关联

    我有两个具有多对多关联的表 数据库片段 loads Id Name sessions Id Date 会话负载 LoadId会话ID Hibernate 映射片段 loads hbm xml
  • 跨数据库外键错误

    这是我的第一个数据库 DB1 的模型 from django db import models class Company models Model name models CharField max length 100 null Tru
  • 初始化 Objective-C 类别中的静态变量

    我试图创建一个静态变量来存储图像字典 不幸的是 我能找到的初始化它的最好方法是检查使用该变量的每个函数 由于我是在类别内创建此变量 因此我不能仅在初始化程序内初始化它 有没有更简洁的方法来初始化 navigationBarImages st