草庐IT

self-extracting

全部标签

iphone - 弱 self 是否必要(performSelector)

我有一个NSObject类别,可以在一段时间后执行block。在这种情况下我需要削弱自己吗?__weakViewController*weakSelf=self;[selfrunBlockAfterDelay:0.6block:^{weakSelf.someview=...}];//Category-(void)runBlockAfterDelay:(NSTimeInterval)delayblock:(void(^)(void))block{dispatch_async(dispatch_get_main_queue(),^{[selfperformSelector:@selecto

objective-c - self = [super init] 重访

我偶然发现了这篇文章InObjective-CwhyshouldIcheckifself=[superinit]isnotnil?我能看懂thissyntax:-(id)initWithString:(NSString*)aString{self=[superinit];if(self){instanceString=[aStringretain];}returnself;}或thissyntax:-(id)init;{if(!(self=[superinit]))returnnil;//otherstuffreturnself;}但我还是不明白“标准”模板语法-init{if((se

iphone - 在 block 内引用 self

现在我有一部分代码是这样的:__strongMyRequest*this=self;MyHTTPRequestOperation*operation=[[MyHTTPRequestOperationalloc]initWithRequest:urlRequest];[operationsetCompletionBlockWithSuccess:^(AFHTTPRequestOperation*request,idresponseObject){[thisrequestFinished:request];}failure:^(AFHTTPRequestOperation*request,

objective-c - 需要在 UIViewController 中转换 self.view 吗?

我创建了一个UIViewController,其中包含一个带有我构建的自定义类的View。我已将View连接到File'sOwnerView导出。它呈现正确,我没有任何真正的问题。但是,我想从我的ViewController实例调用我的View中的一个方法,假设它称为drawSomething。所以在我的Controller的一个方法中,我使用:[self.viewdrawSomething];它有效。但是我收到预编译器警告,因为它似乎不知道我的自定义View定义中的方法。我的方法在这里错了吗?我可以创建一个局部变量并将其强制转换以使警告明显消失。我已经导入了View的头文件,所以这不

ios - 为什么 UIAlertController 会用 self 创建一个保留周期?

UIAlertController*alert=[UIAlertControlleralertControllerWithTitle:@"alert"message:nilpreferredStyle:UIAlertControllerStyleAlert];UIAlertAction*action=[UIAlertActionactionWithTitle:@"action"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction*_Nonnullaction){[selfdoSomething];}];[alertaddActio

ios - 如何覆盖 self.navigationItem.backBarButtonItem Action ?

我想覆盖self.navigationItem.backBarButtonItem的target和action,我试过:UIBarButtonItem*backButton=[[UIBarButtonItemalloc]initWithTitle:@"Back"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(backButtonOverrideAction:)];[self.navigationItemsetLeftBarButtonItem:backButton];它正在工作,但我想使用默认箭头:我也试过:U

ios - UIImageView 自动从 self.view 中移除自身

tutorialImage=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"TaptoStart.png"]];tutorialImage.frame=CGRectMake(0,0,1024,768);[tutorialImageaddGestureRecognizer:[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(blankMethod)]];tutorialImage.userInteractionEnabled=YES;//iuseth

ios - 了解保留计数以及在其中访问 self 的 block 。

我对block的弱引用有基本的了解。我面临的问题是,每当我在block内访问self时,self的保留计数就会增加2,而当我在默认block内访问self时(例如UIViewAnimation)self保留计数增加1。只是想了解为什么它会增加2。提前致谢! 最佳答案 根据Clang源代码生成Objective-C代码块。CGBlocks.cppCGDecl.cppCGObjC.cppObjective-Cblock文字由EmitBlockLiteral函数生成。llvm::Value*CodeGenFunction::EmitBlo

具有自动布局的 IOS self 调整 UITableViewCell 第一次不起作用

我正在尝试通过自动布局实现自动调整UITableViewCell的大小。我有TableView原型(prototype)单元格(自定义单元格)。我有一个UIImageView,它有TopSpace、BottomSpace、要查看的LeadingSpace,高度和宽度作为约束。我有UILabel,它有顶部、水平空间到UIIMageView尾部空间以查看底部的UILabel垂直空间。我有另一个UILabel,它具有到UIImageView的水平空间到View的尾部空间和底部空间。我已将Lines设置为0.用于标签和添加self.tblview.estimatedRowHeight=80.0

ios - 为什么在 dealloc 发生在另一个线程上时尝试创建对 self 的弱引用时我会崩溃?

背景我们的应用程序有一个类试图实现ReceptionistPatternforKVOobservation.整个应用程序中的其他类(例如ViewController)创建这个Receptionist类的实例以充当KVO观察者。每个Receptionist实例都保留所有者提供的block的副本,当KVO通知到达时,Receptionist实例将在适当的操作队列上调用该副本。接待员的dealloc方法调用KVOremoveObserver方法。Owner将Receptionist实例保留为强引用字段,因此当Owner被释放时,Receptionist将在释放过程中将自己作为观察者移除。崩溃