Tag: ios

检测是否应用:didReceiveRemoteNotification:fetchCompletionHandler:通过点击Notification Center中的通知来调用

application: didReceiveRemoteNotification: fetchCompletionHandler: 不同于 application: didReceiveRemoteNotification: 怎么样? 从文档: 与application:didReceiveRemoteNotification:方法不同,该方法仅在应用程序运行时调用,系统将调用此方法,而不pipe应用程序的状态如何。 如果您的应用程序被暂停或未运行,则在调用该方法之前,系统会唤醒或启动您的应用程序并将其置于后台运行状态。 如果用户从系统显示的警报中打开您的应用程序,则系统会再次调用此方法,以便您知道用户select了哪个通知。 我的努力是:我想知道用户是否通过点击通知中心的系统显示警报或者唤醒设备的静默推送通知来调用方法。 目前,据我所知,没有明显的区分办法。 – (BOOL)application: didFinishLaunchingWithOptions: 跟踪上述方法中的launchOptions不是一个解决scheme,因为只有当应用程序被挂起/不在后台运行时才被调用。 如果它在后台运行,它不会被调用。

resignFirstResponder与endEditing for Keyboard Dismissal

在Swift中, [someTextField].resignFirstResponder()和[someTextField].resignFirstResponder() self.view.endEditing(true)完成相同的任务 – 从用户的视图中隐藏键盘,并取消任何文本字段使用它。 我理解前者是特定于某个特定领域的,而后者则包含整个观点,但除了想要针对某个特定的文本领域,哪一个更适合于另一个领域?

当我尝试运行Xcode模拟器时,出现错误“Stop”(null)“?”

我刚更新到Xcode 7,并在现场设备上运行了一个应用程序。 现在由于某种原因,我尝试在模拟器中运行应用程序时出现错误。 Stop “(null)”? An instance of “(null)” is already running. Choose “Stop” to terminate and launch a new instance. 当我按下停止button时,就像在屏幕截图中一样灰色,但没有任何反应。 我已经尝试重置模拟器上的内容和设置,但是没有帮助。

右alignment的UITextField空格键不会在iOS 7中前进光标

在我的iPad应用程序中,我注意到iOS 6和iOS 7与UITextFields不同的行为。 我创buildUITextField如下所示: UIButton *theButton = (UIButton*)sender; UITextField *textField = [[UITextField alloc] initWithFrame:[theButton frame]]; [textField setDelegate:self]; [textField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; [textField setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight]; textField.textAlignment = UITextAlignmentRight; textField.keyboardType = UIKeyboardTypeDefault; … [textField becomeFirstResponder]; 在iOS 6中,当我input“hello world”时,当我点击“hello”后的空格键时,光标前进一个空格。 在iOS 7中,当我点击空格键时,光标不会前进。 但是,当我在“世界”中键入“w”时,它显示空间和w。 当iOS 7中的空格键被击中时,如何提前移动光标? 更新: 如果我将textField.textAlignment更改为UITextAlignmentLeft,则空间将出现在iOS 7中。如果可能,我想保持右alignment。

UISegmentedControl更改事件不在iOS5中触发

我有一个UISegmentedControl其“价值改变”事件在Interface Builder中连线,以调用我的控制器-(IBAction)segmentChangeAction:(id)sender; 当用户点击控件来更改选定的段时,无论在iOS4还是iOS5中,都会按预期segmentChangeAction 。 当我以编程方式更改选定的段segmentedControl.selectedSegmentIndex = newIndex; ,在iOS4 segmentChangeAction被调用,并且该段反映了新的select。 然而在iOS5上segmentChangeAction 没有被调用,但是该段确实反映了新的select。 这是iOS5的变化吗? 有没有什么我可以做的,以获得在iOS5上调用segmentChangeAction ,当我以编程方式更改select?

XCode 4.3.2,在模拟器上运行问题

当然,在最近的更新之后,我一直对xcode 4.3.2有这个奇怪的问题。 在模拟器上成功构build和运行几次后,xcode似乎无法连接到模拟器,甚至无法停止项目; 这就像模拟器不存在。 我努力了: 停止项目 – 不起作用。 退出模拟器 – 不起作用,即使我退出模拟器,xcode仍然显示它正在模拟器上运行。 清理项目 – 不起作用。 我必须强制退出xcode以使其与模拟器进行通信。 没有别的工作。 每隔半小时做一次这样做会让人很沮丧。 这只是从4.3.2开始的。 在构build和运行之前,我总是停下来,所以这不是模拟器/ xcode被我弄坏的问题。 有什么build议么?

具有多个embedded段的ContainerView

有没有办法让一个单独的ContainerView具有多个embedded段? 目标是让ContainerView根据按下的button来保存几个不同的ViewController; 一次只能看到一个。 我想要使​​用embed segues,这样在Interface Builder中,故事板会自动显示为与ContainerView相同的大小。 我意识到我可以在InterfaceBuilder中手动调整其他ViewControllers的大小,但是我想要通过embeddedsegue提供的自动resize。 如果有另外一种方法可行的话,那也可以。 没有视图加载viewDidLoad是好的 – 正如前面提到的,显示的ViewController可以改变取决于按下的button。

使用ARC查找保留的对象

我有一个被保留的东西超过了必要的(很可能是因为一个strong而不weak的属性)。 大的代码库,所以很难find在哪里。 如何在使用ARC时find所有保留这个对象的行? 如果我不使用ARC,我想我可以简单地覆盖retain并检查它从哪里调用。 我可以做与ARC类似的东西吗?

如何在Swift中设置UITableViewCellStyleSubtitle和dequeueReusableCell?

我想要一个带有使用dequeueReusableCellWithIdentifier subtitle式单元格的UITableView 。 我最初的Objective-C代码是: static NSString* reuseIdentifier = @"Cell"; UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier]; if(!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier]; } 在search了这里的几个UITableView问题后,我想这样写在Swift中: tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "Cell") let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell 但是,这不让我说我想要一个subtitle风格。 所以我试过这个: var cell :UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell") 这给了我一个subtitle单元格,但它不让我dequeueReusableCellWithIdentifier 。 我已经研究了一些,看了这个video教程 ,但他创build了UITableViewCell一个单独的subclass ,我认为是不必要的,因为我以前在Obj-C中完成了相同的效果。 有任何想法吗? 谢谢。

如何知道何时可以忽略所有exception断点上的__cxa_throw?

我在Xcode 4.5.1上。 我认为这是我看到的比较新的行为。 我更喜欢在启用“所有exception”断点的情况下开发和testing我的项目。 我已经遇到了一个场景,我正在将缩略图图像加载到tableview中的单元格,在那里我得到一个__cxa_throwexception。 当我点击“继续执行程序”button,Xcode继续其快乐的方式。 我得到缩略图。 应用程序似乎工作正常。 我正在寻找一些关于如何确定这是否安全可以忽略的提示。 就像也许一些理解栈跟踪的指针? 或者是其他东西? 以下是代码片段: NSString *imageStr = item.thumbURL; imageStr = [imageStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *imageURL; if (![imageStr isEqualToString:@""]) { imageURL = [NSURL URLWithString:imageStr]; NSLog(@"imageURL: %@",imageURL); if (imageURL == nil) { NSLog(@"imageUrl was nil for string: %@",imageStr); } else { UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; //spinner.frame = CGRectMake(cell.imageView.frame.size.width/2,cell.imageView.frame.origin.y […]