我对如何以及何时使用感到困惑beginBackgroundTaskWithExpirationHandler
.
Apple在他们的示例中显示在applicationDidEnterBackground
委托中使用它,以便有更多时间来完成一些重要任务,通常是网络事务.
在查看我的应用程序时,似乎我的大多数网络内容都很重要,当一个人启动时,如果用户按下主页按钮,我想完成它.
因此,beginBackgroundTaskWithExpirationHandler
为了安全起见,包装每个网络事务(并且我不是在谈论下载大量数据,大多数是短xml)是接受/良好做法 吗?
network-programming objective-c multitasking ios background-thread
我需要对核心数据执行大量的导入任务.
假设我的核心数据模型如下所示:
Car
----
identifier
type
Run Code Online (Sandbox Code Playgroud)
我从我的服务器获取汽车信息JSON列表,然后我想将它与我的核心数据Car
对象同步,这意味着:
如果它是一辆新车 - > Car
从新信息创建一个新的Core Data 对象.
如果汽车已经存在 - >更新Core Data Car
对象.
所以我想在后台进行导入,而不会阻止UI,而使用滚动显示所有汽车的汽车表视图.
目前我正在做这样的事情:
// create background context
NSManagedObjectContext *bgContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[bgContext setParentContext:self.mainContext];
[bgContext performBlock:^{
NSArray *newCarsInfo = [self fetchNewCarInfoFromServer];
// import the new data to Core Data...
// I'm trying to do an efficient import here,
// with few fetches as I can, and in batches
for (... num of batches ...) {
// do batch import... …
Run Code Online (Sandbox Code Playgroud) 到目前为止,我使用了开发推送证书,推送通知效果很好.
现在我想将我的应用程序提交给Apple,因此我创建了一个生产证书并将其设置为"代码签名身份" - >"发布"
我还将.p12文件放在我的生产服务器中.
但推动现在不起作用.
当我从xcode运行时,它是否可以工作?或者从App Store下载应用程序时它会起作用吗?如果是这样我该怎么测试呢?
我的应用程序(简化)结构是这样的:
UITabBarController
一个人UINavigationController
拿着一个UITableViewController
根视图控制器.
当点击其中一个表格视图控制器单元格时,我按下常规UIViewController
(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)
在故事板中,我UIView
向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.
我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.
我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.
在多线程服务器中使用实体框架的最佳实践是什么?我正在使用实体框架ObjectContext
来管理我的所有数据库操作,现在我知道这个上下文不是线程安全的,所以现在当我需要使用它来执行一些数据库操作时,我用lock
声明来包围它是安全的.这是我应该怎么做的?
我有一个Person
属性的实体personId
(personId是唯一的)
如何获取max personId的Person?
(我想取这个人本身而不是财产的价值)
我正在开发一个使用网络的iPhone应用程序.iPhone通过HTTP请求与我的服务器通信,应该可以在WiFi和3G上运行.
我目前NSURLConnection initWithRequest
用来向我的服务器发送异步请求并获得响应(但我很快就会开始使用ASIHTTPRequest
库)
我明白,对于这种应用程序(需要互联网连接的应用程序),我应该(必须?)使用Reachability.
在搜索网页并查看Apple的Reachability示例代码后,我仍然不了解一些基本内容:
可达性的主要目的是什么?
在Apple的示例中,他们检测到主机,WiFi和3G的网络问题,并向用户显示适当的消息.
这是Reachability的主要目的,向用户显示消息吗?或者我是否需要将其用于其他更实际的场景?例如,如果NSURLConnaction
请求失败,我是否需要以某种方式使用Reachability重新发送请求?
可达性的正确使用是什么?
在应用启动时只使用一个实例,然后收听网络更改是否常见?或者我应该在每次网络请求之前检查自己的可达性状态?
是否足以使用reachabilityWithHostName
或者我也需要reachabilityForLocalWiFi
和reachabilityForInternetConnection
?
还有一件事,我理解苹果可以拒绝使用网络但不使用可达性的应用程序.我应该实施
哪些" 必须 "的方法?
仅通知用户目前没有互联网是否足够?
我在这里看到很多关于这个问题的帖子,但仍然找不到这个问题的完美答案.
所以我有一个tableview,每个单元格里面都有一个播放按钮.当用户点击播放按钮时,我会UIWebView
向此单元格添加一个,然后播放YouTube视频.
static NSString *youTubeVideoHTML = @"<html>\
<body style=\"margin:0;\">\
<iframe class=\"youtube-player\" type=\"text/html\" width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\">\
</iframe>\
</body>\
</html>";
- (void)playVideoWithId:(NSString *)videoId {
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, self.frame.size.width, self.frame.size.height, videoId];
[self loadHTMLString:html baseURL:nil];
}
Run Code Online (Sandbox Code Playgroud)
问题:
此代码实际上并不像我想要的那样播放视频,只是启动YouTube播放器并使用YouTube红色播放按钮进行显示.只有当用户点击红色按钮时,视频才会开始播放.
因此,用户必须点击两个按钮,直到视频开始 - 而不是最好的用户体验...
就像我说的那样,我看到很多关于这个问题的帖子,有些根本不起作用,有些作品但有一些问题让我感到困扰.
我找到的其中一个工作解决方案是@ilias的这篇文章,他展示了如何使用从文件中加载HTML(而不是像我这样的字符串),这个问题的问题在于我播放的每个视频我需要:
加载htm文件 - >将视频ID嵌入其中 - >将文件写入光盘 - >现在我只能播放视频.
奇怪的是,此解决方案仅在您从文件加载Web视图请求时才起作用,如果我尝试从等于文件内容的字符串加载请求,则该方法无效.
在iOS 7中,表格视图的分隔线比以前的ios更薄,看起来像是0.5像素的宽度.
我需要用一个相似的分隔线(仅垂直)将单元格拆分为2,我希望这条线与常规分隔线的宽度相同.
所以我想知道添加这样一条线的最佳方法是什么?
如果我使用a UIView
并将其宽度设置为0.5它将不可见,如果我将其宽度设置为1.0,我当然会获得1.0px而不是0.5px的线宽.
我尝试使用视网膜大小为1.0px的资源,但它没有效果......
我正在构建一个照片过滤器应用程序(如Instagram,Camera +以及更多......),可能主屏幕是UIImageView
向用户呈现图像,以及带有一些过滤器和其他选项的底栏.
其中一个选项是模糊,用户可以用手指捏住或移动表示非模糊部分(半径和位置)的圆圈 - 此圆圈外的所有像素都将模糊.
当用户触摸屏幕时,我想在我的图像上方添加一个代表模糊部分的半透明层,其中一个完全透明的圆圈代表非模糊部分.
所以我的问题是,我该如何添加这一层?我想我需要在我的图像视图上面使用一些视图,并使用一些蒙版来获得我的圆形?我真的很感激这里的好建议.
还有一件事
我需要圆圈不会直线切割,但会有一种渐变淡化.像Instagram这样的东西:
而且非常重要的是要以良好的性能获得这种效果,我会成功获得这种效果,drawRect:
但旧设备(iphone 4,iPod)的性能非常糟糕
ios ×9
objective-c ×9
iphone ×4
core-data ×2
autolayout ×1
c# ×1
database ×1
multitasking ×1
reachability ×1
storyboard ×1
uitableview ×1
uiwebview ×1
youtube ×1
youtube-api ×1