草庐IT

self-assignment

全部标签

ios - 为什么 UIKit 委托(delegate) "assign"而不是 "weak"?

如标题所述,为什么UIKit与会代表(assign)而不是(weak)?参见UIPopovercontroller.h例如:@property(nonatomic,assign)iddelegate;据我所知,与弱保留属性相比,这并没有带来任何好处,但委托(delegate)人需要管理自己作为委托(delegate)人的生命周期时会出现很多问题。这是向后兼容性问题吗?谢谢 最佳答案 因为大多数这些属性在iOSSDK支持弱属性之前就已经存在。weak属性仅在iOS5.0及更高版本上受支持。我不得不猜测,一旦iOS4.x和更早版本成为历

iphone - 当我初始化自定义单元格时返回 'self' 而它没有设置为 '[(super or self) init...]' 的结果

在CustomCell.m中,我定义了我想从IB加载单元格的init方法:-(id)init{self=[superinit];if(self){NSArray*nib=[[NSBundlemainBundle]loadNibNamed:@"CustomCell"owner:selfoptions:nil];self=[nibobjectAtIndex:0];}returnself;}在MyTableViewController.m的cellForRowAtIndexPath方法中,我初始化了我的自定义单元格-(UITableViewCell*)tableView:(UITableVi

ios - UITextField 的 resignFirstResponder 既不工作也不工作 self.view.endEditing()

我正面临textField的荒谬问题,我有两个文本字段,即tfA和tfB,我已经为这些文本字段设置了代表和所有内容,我想要的是,如果我单击tfA,它应该打印一些东西,并且它正在打印,如果我单击tfB,它应该会出现键盘,它也运行良好,但是当我再次单击tfA时,它应该打印一些东西,键盘应该根据那里给出的条件关闭,但键盘没有关闭此外,self.view.endEditing(true)在这里不起作用。下面给出了代码和屏幕截图,我在这里做错了什么?代码:Swift3importUIKitclassViewController:UIViewController,UITextFieldDelega

iphone - 更改 UIView 的 CALayer 框架(self.view.layer.frame = ...)似乎没有效果

我确定我在这里遗漏了一些基本的东西。我正在尝试来自以下位置的CALayers'helloworld'代码:http://www.raywenderlich.com/2502/introduction-to-calayers-tutorial做第一个例子。xcode4.2中的新单View项目。Nib/Storyboard没有变化。导入quartz核。将以下代码添加到ViewController.m中的ViewDidLoad中:-(void)viewDidLoad{[superviewDidLoad];self.view.layer.backgroundColor=[UIColorblue

ios - 第二次加载 ViewController 时,self.navigationController 为 nil

我有一个在我的UIViewControllers上实现的委托(delegate)/处理程序来处理远程web服务的超时。当向我的网络服务发出请求并返回超时http代码时,委托(delegate)将被调用并执行以下操作:UINavigationController*navController=self.navigationController;if(navController){[navControllerpopToRootViewControllerAnimated:YES];}else{NSLog(@"navControllerisnull/nil");}如果我执行以下步骤,navCo

ios - block 中的宏捕获 self

我用下面的宏来记录各种信息有问题#defineJELogVerbose(fmt,...)DDLogVerbose((@"%@%@-"fmt),NSStringFromClass([selfclass]),NSStringFromSelector(_cmd),##__VA_ARGS__)当在block中使用这个final宏时会出现问题,它显然会强烈捕获self,这可能会有问题。以下是解决方案的一些要求:它可以是一个多行宏,您可以在其中定义weakSelf但这并不能解决问题,因为您可以重新定义您创建的__weak指针。使用__FILE__或__PRETTY_FUNCTION__因为它们捕获

iphone - 为什么 self.bounds.size.height 没有考虑这段代码中的 UINavigationView 导航栏?

我有一个配置UITableView,可以通过UINavigationController方法启动颜色选择器:[self.navigationControllerpushViewController:colorPickerViewControlleranimated:YES];[colorPickerViewControllerrelease];这意味着ColourPicker的顶部将有一个导航栏(和后退按钮)ColourPickerViewControll及其ViewColourPickerView的结构如下:-ColourPickerViewController-init'sXIBf

ios - 我的 self.view 尺寸错误

我的观点有错误的维度。我只运行风景,但View报告纵向尺寸“ViewWidth=768.000000Height=1024.000000”任何想法如何解决这个问题?我玩过我试过的自动旋转-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{return(interfaceOrientation==UIInterfaceOrientationLandscapeLeft||interfaceOrientation==UIInterfaceOrientationLa

iphone - Objective-C 中的 "super"是什么? ( self != super )?

我已阅读下面的问题,故事SEEMS很简单:WhatexactlyissuperinObjective-C?还...-(id)init{NSLog(@"self=%p,super=%p",self,super);}打印出“self=0xa83dc50,super=0xbfffe8d0”。地址不一样???!?!?第二个地址似乎是一个“特殊值”之类的东西。什么意思?感谢bbum指出这个值是编译器用来实现“super”行为的特殊结构的堆栈地址。我可以调用[superinit]并且调用似乎有效,或者至少没有爆炸……不会立即发生。调用[((id)0xbfffe8d0)init]失败并返回EXC_B

objective-c - 使用 ARC、lifetime qualifier assign 和 unsafe_unretained

我对这两个限定词有点困惑...使用ARC而不是使用weak(即如果我需要支持iOS4)我可以使用unsafe_unretained失去自动零功能......最终结果似乎类似于赋值。我可以将unsafe_unretained与assign交换吗?这些限定符是一回事吗?有关此论点的Apple文档的任何链接都将非常有趣...我只能找到几行here 最佳答案 Clang的technicalspecificationofARC详细介绍了限定符的工作原理。但是,回答你的问题:assign和__unsafe_unretained不是一回事。ass