我知道Apple正式建议UIKit仅用于主线程.但是,我也听说过自iOS 4.0以来UIImage是线程安全的.我找不到支持此声明的任何文档.
有没有人有任何信息来支持这种说法?作为用于存储数据和解码图像数据的类,如果设计良好,UIImage应该是线程安全的.
@interface Foo : NSObject {
}
- (Bar)bar;
Run Code Online (Sandbox Code Playgroud)
在运行时,给定[Foo类],我们如何找出Foo所有方法的返回类型?
我一直在研究Objective-C运行时API; 据我所知,没有办法获得方法或属性的返回类型(即Class).这似乎是任何反射API中的一个严重遗漏.
今天我遇到了一个奇怪的行为,我没想到Objective-C编译器会允许.
在UITableViewCell中,有一个名为imageView的属性为UIImageView.我将UITableViewCell子类化,并覆盖了imageView,除了我的AWImageView类型,其中AWImageView是UIImageView的子类.我认为它不会编译,但确实如此.一切正常.我对这种行为感到非常震惊.
是否缩小了正式允许的子类中的属性类型?或者这是Objective-C编译器中的一个错误,它使它工作?
在Objective-C中,我们应该保留还是释放类型的变量Class吗?A Class是指向C结构的指针.
我尝试使用 CALayer 显示图像,但图像未显示。我已经验证“image”不是 nil,image.size 是正确的,layer.contents 是一个有效的 CABackingStore。
- (void)viewDidLoad
{
[super viewDidLoad];
layer = [[CALayer alloc] init];
[self.view.layer addSublayer:layer];
UIImage *image = [UIImage imageNamed:@"download.jpeg"];
layer.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
layer.position = self.view.center;
layer.contents = (id)image.CGImage;
[layer setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
这里可能有什么问题?