Questions tagged «ios»

iOS是在Apple iPhone,iPod touch和iPad上运行的移动操作系统。使用此标签[ios]来解决与iOS平台上的编程有关的问题。使用相关的标签[objective-c]和[swift]解决那些编程语言所特有的问题。

5
iOS启动后台线程
我的iOS设备中有一个小sqlitedb。当用户按下按钮时,我从sqlite获取数据并将其显示给用户。 我要在后台线程中执行此操作(不阻塞UI主线程)。我这样做- [self performSelectorInBackground:@selector(getResultSetFromDB:) withObject:docids]; 经过提取和一些处理后,我需要更新UI。但是由于(作为一种好习惯),我们不应该从后台线程执行UI更新。我selector这样在主线程上调用- [self performSelectorOnMainThread:@selector(showResults) withObject:nil waitUntilDone:NO]; 但是我的应用程序在第一步中崩溃了。即启动后台线程。这不是在iOS中启动后台线程的方法吗? 更新1:在[self performSelectorInBackground....获得此stacktrace之后,再也没有任何信息- 更新2:我什至尝试启动这样的后台线程- [NSThread detachNewThreadSelector:@selector(getResultSetFromDB:) toTarget:self withObject:docids];但仍然得到相同的stacktrace。 就像我澄清的那样,当我在主线程上执行此操作时,一切运行顺利... 更新3这是我试图从后台运行的方法 - (void)getResultSetFromDB:(NSMutableArray *)toProceessDocids { SpotMain *mirror = [[SpotMain alloc] init]; NSMutableArray *filteredDocids = toProceessDocids; if(![gMediaBucket isEqualToString:@""]) filteredDocids = [mirror FetchDocIdsForMediaBucketWithDocID:filteredDocids mBucket:gMediaBucket numRes:-1]; if(![gMediaType isEqualToString:@""]) filteredDocids = [mirror FetchDocIdsForMediaType:filteredDocids mediaType:gMediaType numRes:-1]; …

6
没有导航栏的UINavigationController?
我有一个通用应用程序,在iPad版本上,我正在使用UISplitViewController它创建类似于Mail应用程序的界面。 我在推送新的“详细信息”视图时遇到了麻烦,因此我决定使用,UINavigationController这样我就可以根据需要推送和弹出视图。但是,我不想使用导航视图或工具栏。但是,无论我做什么,我都无法隐藏导航栏。 我尝试取消选中IB中的“显示导航栏”,并且还尝试了以下设置: [self.navigationController setNavigationBarHidden:YES]; 在viewDidLoad/ viewDidAppear/中viewWillAppear。我还在将要推送的每个视图中都尝试过。没事。 我在这里想念什么吗?是否有可能UINavigationController没有工具栏或导航栏?

24
UITableView动态单元格高度仅在某些滚动后才正确
我有一个使用自动布局在情节提要中定义UITableView的自UITableViewCell定义。该单元具有多个多行UILabels。 在UITableView出现要正确计算单元格高度,但在最初的几个细胞高度不正确的标签之间的分歧。滚动一点后,一切都会按预期进行(即使最初不正确的单元格也是如此)。 - (void)viewDidLoad { [super viewDidLoad] // ... self.tableView.rowHeight = UITableViewAutomaticDimension; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"TestCell"]; // ... // Set label.text for variable length string. return cell; } 有什么我可能会丢失的东西,导致自动布局无法在最初的几次中完成它的工作吗? 我创建了一个示例项目来演示此行为。


24
UIAlertController自定义字体,大小,颜色
我正在使用新的UIAlertController来显示警报。我有以下代码: // nil titles break alert interface on iOS 8.0, so we'll be using empty strings UIAlertController *alert = [UIAlertController alertControllerWithTitle: title == nil ? @"": title message: message preferredStyle: UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertAction actionWithTitle: cancelButtonTitle style: UIAlertActionStyleCancel handler: nil]; [alert addAction: defaultAction]; UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; [rootViewController …

1
iTunes Connect中的“意外的机器代码”警告
这篇文章与一个快速变化的事件有关。 在使用Application Loader将构建文件上载到iTunes Connect之后,我收到了有关问题“意外的机器代码”的电子邮件,请参见下文。 意外的机器代码-您上传的文件包含位代码和本机代码。提供位码时,也不必包括机器码。要减少上传的大小,请使用Xcode 7.3或更高版本,或使用其他任何删除机器代码的工具链。 我对这个警告感到困惑。这是iTunes Connect中的新事物吗?为什么当我上传质量检查版本但发布版本时却没有警告我? 更新:我上周上传了质量检查版本,这没有任何警告。今天(2016年6月27日),我上传了Release版本,它向我发送了警告。

6
GCD中的并发与串行队列
我正在努力完全理解GCD中的并发和串行队列。我遇到了一些问题,希望有人能及时明确地回答我。 我正在阅读串行队列的创建和使用,以便依次执行任务。但是,如果发生以下情况,会发生什么情况: 我创建一个串行队列 我使用dispatch_async了3次(在我刚刚创建的串行队列中)分配了三个块A,B,C 将执行以下三个块: 按顺序A,B,C,因为队列是串行的 要么 并发(同时在并行线程上),因为我使用了ASYNC调度 我读到我可以dispatch_sync在并发队列上使用,以便一个接一个地执行块。在那种情况下,为什么甚至不存在串行队列,因为我始终可以使用并发队列,在该队列中可以同步分配任意数量的块? 感谢您的任何解释!


11
从当前日期减去7天
看来我无法从当前日期减去7天。这就是我的做法: NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *offsetComponents = [[NSDateComponents alloc] init]; [offsetComponents setDay:-7]; NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0]; SevenDaysAgo的值与当前日期相同。 请帮忙。 编辑:在我的代码中,我忘记了用正确的日期替换获取当前日期的变量。因此上面的代码是功能正常的。
117 objective-c  ios  nsdate 





8
将许可证部分添加到iOS设置捆绑包的最佳方法
我的iOS应用程序使用了许多在Apache 2.0和类似许可证下获得许可的第三方组件,这需要我包含各种文本,例如: * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 将此信息放在设置捆绑包中的“许可证”子条目下似乎有一个合理的先例(在ipad的Facebook,页面,主题演讲,数字和Wik​​ipanion上似乎都可以做到这一点)。 我在努力实现相同目标方面有些挣扎;我似乎需要一行一行地分割文本,然后一次输入xcode一行(并且在编辑plists时,xcode4似乎有崩溃的问题)。 似乎几乎可以肯定某个地方的脚本可以做,或者我错过了一些简单的方法来完成。

7
UIActionSheet取消按钮异常行为
我有一个UIBarButtonItem,它打开一个操作表来为用户提供有关操作的选择。除非我尝试单击“取消”按钮,否则一切都会按预期进行。该按钮的目标似乎已经从其应有的位置向上移动。我只能通过单击“取消”和“确定”按钮中间的某个位置来激活它。 我已经在其他应用程序中尝试过操作表,它们可以很好地工作,所以这不仅仅是我的经验。操作表正在UIViewController中打开 - (void)showOpenOptions { UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Open link in external application?", @"Open in external application") delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel") destructiveButtonTitle:NSLocalizedString(@"Open Link", @"Open Link") otherButtonTitles:nil]; [sheet showInView:self.view]; [sheet release]; }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.