Articles of débiles

Arreglo iterativo de references débiles donde los objects se ajustan a un protocolo en Swift

Quiero almacenar objects en una matriz, donde los objects son débiles y se ajusta a un protocolo. Pero cuando trato de hacerlo, obtengo un error de compilation: public class Weak<T: AnyObject> { public weak var value : T? public init (value: T) { self.value = value } } public protocol ClassWithReloadFRC: class { func reloadFRC() […]

¿Por qué se agregará un object débil a pool de autorelease?

id __weak obj1 = obj0; iguales id __weak obj1 = obj0; id __autoreleasing tmp = obj0; En Pro multithreading y gestión de memory para iOS y OSX . Pero por qué el obj1 debe agregarse al grupo de autorelease, creo que hacer un puntero débil de un object no debe afectar su vida.

¿Por qué la asignación con una propiedad fuerte funciona, pero no con una propiedad débil?

Tengo una propiedad declarada en mi file .h como @property (weak, nonatomic) UIPickerView *levelPicker; que se sintetiza en mi file de implementación como: @synthesize levelPicker = _levelPicker; Entonces tengo un bloque de código en el mismo file de implementación que hace lo siguiente: if (self.levelPicker == nil) { self.levelPicker = [[UIPickerView alloc] initWithFrame:CGRectZero]; self.levelPicker.delegate = […]

¿Relación débil entre tiendas con las properties de Fetched?

Me gustaría separar mis datos de reference de mis datos de usuario en mi model de datos básicos para simplificar futuras actualizaciones de mi aplicación (y porque planeo almacenar la database en la nube y no hay necesidad de almacenar datos de reference en la nube como esto es parte de mi request). Por lo […]

¿Por qué la variable con calificador débil retiene un object?

Aquí está mi código: extern void _objc_autoreleasePoolPrint(); int main(int argc, const char * argv[]) { NSArray __weak *tmp = nil; @autoreleasepool { NSArray __strong *obj = [[NSArray alloc] init]; NSLog(@"obj &: %p", obj); tmp = obj; NSLog(@"tmp &: %p", tmp); _objc_autoreleasePoolPrint(); } NSLog(@"tmp: %@", tmp); // why not (null) ? return 0; } Y salida […]

¿Por qué mi aplicación se bloqueó cuando se asignó a sí mismo a __destaja local en ARC?

Crashlytics informó este crash: 0 libobjc.A.dylib _objc_trap() + 18446744073709552000 1 libobjc.A.dylib _objc_fatal + 71 2 libobjc.A.dylib append_referrer_no_lock(weak_referrer_array_t*, objc_object**) 3 libobjc.A.dylib objc_storeWeak + 120 4 MyApp CloudSyncButton.m line 58 -[CloudSyncButton observeValueForKeyPath:ofObject:change:context:] 5 …. El código en cuestión: -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { CloudSyncButton* __weak weakSelf = self; //<—crashed here if([keyPath isEqualToString:kCloudSyncingKVO]) { dispatch_async(dispatch_get_main_queue(), […]