0

我在用户登录时将用户名/密码信息保存到钥匙串。稍后如果我需要用户名,我会从钥匙串中获取用户名。我今天早上在导航我的应用程序时注意到,我的钥匙串属性显然已从内存中释放,即使应用程序从未被释放(在重新打开应用程序时从未被踢出到初始视图控制器)。

我正在使用这个 ARCified KeychainItemWrapper,我认为问题可能是我声明属性属性的方式:

@property (nonatomic, retain) KeychainItemWrapper *keychainItem;

我现在知道我应该使用strong而不是retain,但这是否是在我的应用程序之前释放该属性的原因?

4

1 回答 1

1

A. 你使用哪个类并不重要。重要的是您的财产已被解除分配。当不再有对象拥有从该属性表示的对象的所有权时,就会发生这种情况。这意味着您声明该属性的对象已被释放即视图控制器被解除或弹出);

B. retainandstrong完全一样,但是用ARCretain调用和release不再调用是一个很好的做法。strong

于 2015-01-13T23:12:01.507 回答