我正在使用该SDWebImage库在我的应用程序中缓存Web图像:
https://github.com/rs/SDWebImage/blob/master/README.md
目前的用法:
[imageView setImageWithURL:[NSURL URLWithString:profilePictureUrl] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
Run Code Online (Sandbox Code Playgroud)
我的问题是,一旦图像被缓存后会发生什么,然后几天后,服务器上的图像文件已用新图像更新?
目前我的应用程序仍在显示缓存的图像.
我无法在任何有关设置缓存超时的文档中看到或识别出文件大小已更改的内容.
如果有人有使用这个特定库的经验,那么任何帮助将不胜感激.
提前致谢.
我用以下方法得到了一些错误:
1)我如何return screenHeight / cellCount作为CGFLoat第一种方法?
2)如何在第二种方法中使用等效的ObjC的MIN()和MAX()?
func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
var cellCount = Int(self.tableView.numberOfRowsInSection(indexPath.section))
return screenHeight / cellCount as CGFloat
}
// #pragma mark - UIScrollViewDelegate
func scrollViewDidScroll(scrollView: UIScrollView) {
let height = CGFloat(scrollView.bounds.size.height)
let position = CGFloat(MAX(scrollView.contentOffset.y, 0.0))
let percent = CGFloat(MIN(position / height, 1.0))
blurredImageView.alpha = percent
}
Run Code Online (Sandbox Code Playgroud) 是否可以在指定的秒数内显示Default.png?我有一个客户端希望显示的启动画面的时间长于当前时间.
他们希望它显示2 - 3秒.
我想实现一个接受某种类类型的Swift方法,但只接受那些符合特定协议的类的实例.例如,在Objective-C中我有这样的方法:
- (void)addFilter:(GPUImageOutput<GPUImageInput> *)newFilter;
Run Code Online (Sandbox Code Playgroud)
哪个GPUImageOutput是特定的类,并且GPUImageInput是一个协议.只有GPUImageOutput符合此协议的类才是此方法的可接受输入.
但是,上面的自动Swift生成的版本是
func addFilter(newFilter: GPUImageOutput!)
Run Code Online (Sandbox Code Playgroud)
这消除了GPUImageOutput类符合GPUImageInput协议的要求,这将允许传入不兼容的对象(然后在运行时崩溃).当我尝试将其定义GPUImageOutput<GPUImageInput>为时,编译器会抛出错误
无法专门化非泛型类型'GPUImageOutput'
我如何在Swift中的参数中进行这样的类和协议专门化?
@numbers = [ 1, 2, 3, 4, 5, 6, 7, 8 ]
@numbers.last 会给我8
我需要抓住最后两个记录.到目前为止,我已经尝试了这个,但它抛出了NoMethodError:
@numbers.last - 1
所以我刚刚升级到Xcode 6.3 Beta 3,并且出现了很多与以下内容相关的错误:
Initializer不会覆盖其超类中的指定初始值设定项.
override init() {
super.init()
}
Run Code Online (Sandbox Code Playgroud)
例如,这是一个UIButton类:
class CustomButton: UIButton {
var target: AnyObject!
var selector: Selector!
var action: (() -> Void)!
override init() { // Initializer does not override a designated initializer from its superclass
super.init() // Must call a designated initializer of the superclass 'UIButton'
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(frame: CGRect) {
super.init(frame: frame)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的UIViewController课程之一:
class CustomAlertView: UIViewController {
required init(coder aDecoder: …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个对象映射到另一个对象,但对象非常复杂.在开发过程中,我希望能够排除一堆字段并逐个访问它们,或者能够指定仅映射我想要的字段并在每次测试成功时增加它们.
所以:
class
string field1
string field2
string field3
Run Code Online (Sandbox Code Playgroud)
现在我想映射field1,测试,修复然后移动到field2那时field3.
这可能吗?
我有以下内容ViewController:
class PageContentViewController: UIViewController {
var pageIndex: Int
}
Run Code Online (Sandbox Code Playgroud)
我如何pageIndex从另一个ViewController 访问?
我需要访问pageIndex此功能:
func pageViewController(pageViewController: UIPageViewController!, viewControllerBeforeViewController viewController: UIViewController!) -> UIViewController! {
//var index: Int
//index = ?
NSUInteger index = ((PageContentViewController*) viewController).pageIndex; // in Swift?
if ((index == 0) || (index == NSNotFound)) {
return nil;
}
index--;
return [self viewControllerAtIndex:index]; // in Swift?
}
Run Code Online (Sandbox Code Playgroud) 我有一个类如下,有两个重载方法.
Class A
{
public string x(string a, string b)
{
return "hello" + a + b;
}
public string x(string a, string b, string c = "bye")
{
return c + a + b;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我x从另一个带有两个参数的类调用该方法,那么将执行哪个方法以及为什么?即
string result = new A().x("Fname", "Lname");
Run Code Online (Sandbox Code Playgroud)
我在我的控制台应用程序中测试了这个,并且执行了2个参数的方法.有人可以解释一下吗?
我在使用NSCodingSwift时遇到了麻烦.我试图实现协议,但每当我调用我的save()方法时我都会崩溃.Xcode让我上线了encodeWithCoder.这是我的代码,任何建议都会随之而来.
class CourseList: NSObject, NSCoding {
...
init(coder aDecoder: NSCoder!){
super.init()
if aDecoder != nil {
self.courses = aDecoder.decodeObjectForKey("courses") as Dictionary<String,course>
}
}
func encodeWithCoder(aCoder: NSCoder!) {
aCoder!.encodeObject(self.courses, forKey: "courses") // EXC_BAD_INSTRUCTOIN
}
}
Run Code Online (Sandbox Code Playgroud)
我写了save()并load()打电话给ViewController.
func save() {
var archivedObject = NSKeyedArchiver.archivedDataWithRootObject(History) //NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
var defaults = NSUserDefaults.standardUserDefaults() //[defaults setObject:archivedObject forKey:<key_for_archived_object>];
defaults.setObject(History.courses, forKey: "courses")
defaults.synchronize()
}
func load() {
var defaults = NSUserDefaults.standardUserDefaults() // NSUserDefaults …Run Code Online (Sandbox Code Playgroud) swift ×5
ios ×4
objective-c ×4
c# ×2
automapper ×1
caching ×1
initializer ×1
iphone ×1
overloading ×1
ruby ×1
sdwebimage ×1
uiimageview ×1