iOS Bundle使用说明

1. bundle是什么

2. bundle怎么用

3. 私有库中bundle怎么用

看到有两种用法:

//方法一
+ (NSBundle *)getYXUtilityBundle {
    NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
    // YXUtility是项目中到一个私有pod
    NSString *resBundlePath = [NSBundle pathForResource:@"YXUtility" ofType:@"bundle" inDirectory:bundlePath];
    return [NSBundle bundleWithPath:resBundlePath];
}

//方法二
// YXFuDaoModule也是系统中的一个私有库
#define kBundleUrl ([[NSBundle bundleForClass:NSClassFromString(@"YXBaseModel")] URLForResource:@"YXFuDaoModule" withExtension:@"bundle"])
#define kYXFDBaseBundle kBundleUrl?[NSBundle bundleWithURL:kBundleUrl]:[NSBundle mainBundle]


//+bundleForClass 这个方法很少见过,
目录结构
XXX.app
XXX.app / YXFuDaoMoudule.bundle
XXX.app / YXUtility.bundle

 

4. 怎么制作bundle

5. 原理和本质是什么, bundle设计体现了什么思想; 这种思想在哪方面还有应用或相似的场景.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 中的视图控制器是非常重要的组件,它们负责管理应用程序的界面,并且需要及时释放以避免内存泄漏。下面以一个简单的例子来说明视图控制器的释放。 假设我们有一个包含两个视图控制器的应用程序,分别是 AViewController 和 BViewController。AViewController 是主界面,BViewController 是从 AViewController 跳转过来的界面。 在 AViewController 中,我们使用如下代码跳转到 BViewController: ``` BViewController *bvc = [[BViewController alloc] initWithNibName:@"BViewController" bundle:nil]; [self.navigationController pushViewController:bvc animated:YES]; ``` 在 BViewController 中,我们可以通过点击返回按钮来返回到 AViewController。这个过程中,AViewController 会被重新显示出来,但是 BViewController 已经不需要了,需要将其释放。 如果我们使用 ARC,那么只需要在 BViewController 中添加如下代码即可: ``` - (void)dealloc { NSLog(@"BViewController dealloc"); } ``` 当 BViewController 被释放时,会自动调用 dealloc 方法,我们可以在这里添加一些清理工作,例如取消网络请求、移除通知等。 如果我们使用手动内存管理(MRC),那么需要在 AViewController 中添加如下代码: ``` - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; if (![self.navigationController.viewControllers containsObject:self]) { // BViewController 被弹出了,需要释放 [self release]; } } ``` 当 BViewController 被弹出时,会触发 AViewController 的 viewWillDisappear 方法,在这里判断当前视图控制器是否还在导航栈中,如果不在就可以释放了。注意,这里需要调用 release 方法来手动释放内存。 总之,无论是使用 ARC 还是手动内存管理,都需要及时释放不再需要的视图控制器,以避免内存泄漏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值