我有一個AMContact對象,其中其強大的特性之一是AMEmailAddress對象的數組。一個聯繫人可以有很多電子郵件地址我可以在指向聯繫人對象的電子郵件地址對象上創建一個強大的屬性嗎?兒童失去其弱引用父
我覺得,如果它很強的借鑑意義有可能是一個保留週期。如果我使它變弱,當我執行查詢以獲取所有電子郵件地址對象時,在某一時刻,每個電子郵件地址對象的聯繫對象正在變爲零。
- (NSArray*)allEmailAddresses
{
NSArray *allContacts = [self allContacts];
NSMutableArray *emailAddresses = [NSMutableArray array];
for (AMContact *contact in allContacts) {
if (contact.emailAddresses) {
for (AMEmailAddress *address in contact.emailAddresses) {
[emailAddresses addObject:address];
}
}
}
if (emailAddresses.count > 0) {
return emailAddresses;
}
return nil;
}
@interface AMContact : NSObject
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
// arrays of AMEmailAddress, AMPhoneNumber objects
@property (nonatomic, strong) NSArray *emailAddresses;
@property (nonatomic, strong) NSArray *phoneNumbers;
@end
@interface AMEmailAddress : NSObject
@property (nonatomic, strong) NSString *label;
@property (nonatomic, strong) NSString *email;
@property (nonatomic, strong) AMContact *contact; // IS THIS OK OR A RETAIN CYCLE?
@end
你說過「某一時刻每個人的聯繫對象正在變爲零」 - 這種情況到底發生在什麼時候?在您發佈的代碼或使用其他方法的部分代碼中? –