标签: retain

具有setRetainInstance(true)的片段是否能够在进程关闭后继续存在?

考虑到这种情况:如果我创建了一个活动并且它移动到后台并且此活动包含Fragment设置为,setRetainInstance(true)则Android操作系统可能在某些时候仍然决定关闭活动的托管过程以释放内存.

然后,Activity状态被保存onSaveInstanceState(Bundle)在哪里 - 据我所知 - 将相关Bundle内容写入文件系统,以便在关闭过程中继续存在.(因此束中对象的要求是Serializable).稍后,可以通过新进程检索应用程序状态onRestoreInstanceState(Bundle).

相反,我Fragment被允许包含不一定的变量Serializable.因此,我想,Fragment不能像磁盘一样存储在磁盘Bundle上.那么当进程被杀死时,我的片段会发生什么?

我想知道这个阅读开发人员的指南(http://developer.android.com/guide/components/processes-and-threads.html):

保存当前对用户不可见的活动的进程(已调用活动的onStop()方法).这些过程对用户体验没有直接影响,系统可以随时终止它们以回收前台,可见或服务进程的内存.通常有许多后台进程在运行,因此它们保存在LRU(最近最少使用的)列表中,以确保具有用户最近看到的活动的进程是最后被杀死的进程.如果活动正确实现其生命周期方法并保存其当前状态,则终止其进程将不会对用户体验产生明显影响,因为当用户导航回活动时,活动将恢复其所有可见状态.

我理解上面的杀戮,以便关闭VM实例并将进程的状态写入文件系统(这里是进行Bundle中).稍后读取包以恢复该过程.由于片段的保留不涉及生命周期方法,因为我不知道如何保留例如指向网络连接的指针(你当然不应该在片段中有这样的指针),我想知道片段是否存在如果在此期间关闭该过程,仍然会恢复.我得出结论,他们肯定需要重新创建,因此生命周期方法应尽可能优先setRetainInstance(true)考虑.

这个假设是否有意义?

lifecycle android process fragment retain

13
推荐指数
1
解决办法
4177
查看次数

NSObject的保留方法是原子的吗?

NSObject的保留方法是原子的吗?

例如,当从两个不同的线程保留相同的对象时,它是否承诺保留计数增加了两倍,或者保留计数是否可能只增加一次?

谢谢.

cocoa atomic retain

11
推荐指数
1
解决办法
1089
查看次数

Objective-C:ARC禁止显式消息发送'retain'

我是Objective-C的新手,我尝试将旧版Objective-C中编写的旧Objective-C项目移植到新版本,但是我收到以下编译器错误:

ARC forbids explicit message send of 'retain'

in 
color = [aColor retain];
or 
color = [[NSColor blackColor] retain];
Run Code Online (Sandbox Code Playgroud)

我正在阅读clang正在使用的新自动引用计数.
我也试过使用Xcode的重构函数,但没有运气......需要替换这个旧代码的正确的Objective-C代码是什么?

objective-c retain automatic-ref-counting

10
推荐指数
2
解决办法
1万
查看次数

performSelector:withObject:及其保留行为

这是SO中已经回答的问题,但我无法在Apple文档中找到它.你能指出我正确的方向吗?

在以下主题中

在将对象传递给-performSelector之前,我是否必须保留一个对象:withObject:afterDelay:?

对performSelector的保留计数的影响:withObject:afterDelay:inModes

是调用performSelector的对象:withObject:afterDelay是否被NSRunLoop保留?

默认行为似乎如下:它保留接收器和参数.

我正在使用以下代码

[[self delegate] performSelector:@selector(tryToSendStoreData:) withObject:userData];
Run Code Online (Sandbox Code Playgroud)

哪里userData是自动释放的对象.

记录保留计数(我知道它可能无效)传入的数据会增加其保留计数.在委托上调用方法时,保留计数不等于1.

所以,我的问题是:我是否需要执行一些内存管理以避免泄漏或者我是否必须相信Apple的东西?在这里,我作为一个不可知论者说话,因为我找不到合适的文档.

先感谢您.

memory-management objective-c retain nsobject performselector

9
推荐指数
2
解决办法
4859
查看次数

将保留对象分配给弱属性

我正在使用Xcode 6,我用a UITableView和a 创建了我的应用程序custom Cell.这是我的custom cell

@interface SuggestingTableViewCell : UITableViewCell

@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesOne;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesTwo;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesThree;
@property (nonatomic, weak) IBOutlet SuggestedSeriesView *seriesFour;

@end
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我有四个IBOutets属于SuggestedSeriesView它的子类UIView.在TableView DataSource我创建的方法中SuggestedSeriesView,并将它们分配为:

cellIdentifier = suggestionCell;
SuggestingTableViewCell *suggesting = (SuggestingTableViewCell *)[tableView dequeueReusableCellWithIdentifier:suggestionCell];
Series *ser1 = series[0];
suggesting.seriesOne = [[SuggestedSeriesView alloc] initWithFrame:suggesting.seriesOne.bounds
                                                    andSeriesData:@{JV_SERIES_IMAGE_URL : ser1.imageURL,
                                                                    JV_SERIES_TITLE : ser1.title}];
Series *ser2 = …
Run Code Online (Sandbox Code Playgroud)

objective-c retain ios

9
推荐指数
2
解决办法
1万
查看次数

Objective C复制并保留

所以,只是一个简单的问题,我何时应该使用copy而不是使用retain.我试图从互联网上看,但没有得到它.有人可以照亮我吗?

copy objective-c retain

8
推荐指数
2
解决办法
2万
查看次数

Codeigniter set_value()并填充表单值

我的表单字段看起来像这样

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $quantityx);
Run Code Online (Sandbox Code Playgroud)

我修改它以保留表单值

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $this->input->post('quantity'));
Run Code Online (Sandbox Code Playgroud)

我在后面的代码中设置了$ quantityx,以便从数据库中填充一个值,以便用户可以编辑一行.

如何保留验证值,并同时从数据库中填充变量?

我试过这个井

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', set_value($quantityx));
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议

codeigniter retain

8
推荐指数
1
解决办法
3万
查看次数

CFGetRetainCount在创建一个对象后返回2,应该是1?

当我对这个对象进行保留计数时,它是2.这是为什么?当然它应该是一个,因为我刚刚初始化它并没有分配它或任何东西......

let testC: TestClass = TestClass()
print(CFGetRetainCount(testC))
Run Code Online (Sandbox Code Playgroud)

这是在一个空的单视图xcode项目中完成的... TestClass是一个空类,viewcontroller实例化它一次,保留计数为2:

View Controller创建一个测试类

空课

reference-counting retain retaincount automatic-ref-counting

8
推荐指数
0
解决办法
185
查看次数

释放通过imageNamed加载的保留UIImage属性?

在我的类对象中,我已经定义了一个(nonatomic, retain)属性UIImage.我为此属性分配了一个通过加载的图像

[UIImage imageNamed:@"file.png"];
Run Code Online (Sandbox Code Playgroud)

如果在某些时候我想将此属性重新分配给另一个图像,我是否必须释放先前的参考?

我很困惑,因为通过retain属性我知道我应该释放它.但因为imageNamed:是一种方便的方法(不使用alloc),我不知道在这里应用什么规则.

感谢您的见解!

iphone release uiimage retain

7
推荐指数
2
解决办法
7177
查看次数

如何在Objective-C中使用属性?

什么时候应该使用nonatomic,retain,readonlyreadwrite在Objective-C的属性?

例如:

@property(nonatomic, retain) NSObject *myObject;
Run Code Online (Sandbox Code Playgroud)

如果我使用nonatomicretain,这是否意味着该对象将被保留?

iphone properties object objective-c retain

7
推荐指数
1
解决办法
6470
查看次数