非常简单的问题,但在Apple的文档中似乎并不清楚.
将writeToFile:atomically:用于NSData,NSArray等覆盖在文件上现有的数据?
我想知道在使用时,我如何调整视图大小UIModalPresentationFormSheet的modalPresentationStyle,它看起来像它有一个固定的大小,所以我在想,如果有任何人都设法操纵从大小角度弹出视图.
所以有UIModalPresentationFormSheet一个固定的视图大小或完整的视图,我在介于两者之间.
当苹果UITableView为第一款iPhone 开发时,他们在滚动浏览时会遇到性能问题.然后,一位聪明的工程师发现,造成这种情况的原因是物品的分配需要付出代价,因此他想出了一种重用细胞的方法.
"对象分配具有性能成本,特别是如果分配必须在短时间内重复发生 - 例如,当用户滚动表视图时.如果重用单元而不是分配新单元,则可以大大提高表视图性能."
来源:iOS参考图书馆
要重用您使用的单元格:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Run Code Online (Sandbox Code Playgroud)
现在,我想知道的是,这里究竟发生了什么?如果有一个具有该标识符的单元格并且只返回那个标识符,它是否在TableView中查找?好吧,但是,如果它发送一个引用而不是分配,我有一个表视图,让我们说4个具有相同标识符的单元格都可见.如何在不分配的情况下将自身增加到四个实例中?
我想知道这一点,因为我正在构建一个日历类型组件,并且所有单元格只有更改中的文本具有相同的结构.所以,如果我能以某种方式重用我的细胞而不是分配,我想我可能会获得更好的表现.
我自己的理论是它分配了四个细胞(仅仅因为它也有).当一个单元格从屏幕上消失时,它将被放入TableView重用队列中.当需要一个新的单元时,它会在que中查找具有相同标识符的单元是否可用,它会调用prepareForReuse该单元上的方法并将其自身从队列中删除.
我的应用程序中有几个按钮,其alpha当前设置为零.这些按钮完全没有响应,但只要我增加他们的alpha,他们就会开始响应.这是预期的行为吗?
我正在展示一个网络应用程序UIWebView,有时页面内容会发生变化.更改内容后,应用程序将清除缓存.但是当我去一个我以前访问过的页面时,UIWebView它不发送HTTP GET请求,但是从缓存加载,即使我已经禁用了缓存,如下所示:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
Run Code Online (Sandbox Code Playgroud)
最初我正在使用cachePolicy加载请求cachePolicy:NSURLRequestReturnCacheDataElseLoad.
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]];
Run Code Online (Sandbox Code Playgroud)
UIWebView有某种内部缓存.已访问的页面将从此内部缓存加载而不是通过NSURLCache,也没有发送请求.
有没有办法清除内部缓存UIWebView?我甚至正在重新创建,UIWebView但缓存仍在那里.
当使用返回块的方法时,它们可以非常方便.但是,当你必须将它们中的一些串在一起时,它会很快变得混乱
例如,您必须连续调用4个URL:
[remoteAPIWithURL:url1 success:^(int status){
[remoteAPIWithURL:url2 success:^(int status){
[remoteAPIWithURL:url3 success:^(int status){
[remoteAPIWithURL:url2 success:^(int status){
//succes!!!
}];
}];
}];
}];
Run Code Online (Sandbox Code Playgroud)
因此,对于每次迭代,我都会更深入一级,我甚至还没有处理嵌套块中的错误.
当存在实际循环时,它会变得更糟.例如,假设我想以100个块的形式上传文件:
- (void) continueUploadWithBlockNr:(int)blockNr
{
if(blocknr>=100)
{
//success!!!
}
[remoteAPIUploadFile:file withBlockNr:blockNr success:^(int status)
{
[self continueUploadWithBlockNr:blockNr];
}];
}
Run Code Online (Sandbox Code Playgroud)
这感觉非常不直观,并且非常快速地变得非常难以理解.
在.Net中,他们使用async和await关键字解决了所有这些问题,基本上将这些延续展开为一个看似同步的流程.
Objective C中的最佳实践是什么?
lambda continuations objective-c structured-programming objective-c-blocks
我有一个问题 - 我想创建一个循环包装函数,它将包装一个图像,如下所示:

这在OSX中可用,但在iOS上不可用.
到目前为止我的逻辑是:
将图像分成x几个部分和每个部分:
alpha度数90 - atan((h / 2) / (w / 2))我的问题是,这似乎不准确,我无法在数学上弄清楚如何正确地做到这一点 - 任何帮助都将受到大力赞赏.
链接到OSX文档CICircularWrap:
这可能是一个愚蠢的问题,但我在网上找不到很多关于在C++中创建自己的默认构造函数的信息.它似乎只是一个没有参数的构造函数.但是,我试图像这样创建我的默认构造函数:
Tree::Tree() {root = NULL;}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
Tree::Tree() {}
Run Code Online (Sandbox Code Playgroud)
当我尝试其中任何一个时,我收到错误:
没有重载函数"Tree :: Tree"的实例与指定的类型匹配.
我似乎无法弄清楚这意味着什么.
我在我的.cpp文件中创建这个构造函数.我也应该在我的header(.h)文件中做些什么吗?
我想在UIScrollView停止时添加动画?我该如何实现呢?通过使用计时器并检查减速值?或者我认为建议使用4.0块.
objective-c ×4
ios ×3
iphone ×3
ipad ×2
c++ ×1
caching ×1
cocoa-touch ×1
events ×1
lambda ×1
modal-dialog ×1
monodevelop ×1
nsurlcache ×1
presentation ×1
uiimage ×1
uiscrollview ×1
uitableview ×1
uiwebview ×1
xamarin.ios ×1
xcode ×1