Questions tagged «objective-c»

仅在有关Objective-C功能或取决于语言代码的问题上使用此标记。标签[cocoa]和[cocoa-touch]应该用于询问Apple的框架或类。使用相关标签[ios],[macos],[apple-watch]和[tvos]来解决特定于这些平台的问题。

9
有没有办法从UITableView删除分隔线?
我正在寻找一种在纯模式下完全删除UITableView中分隔线的方法。这是自动分组的,但是这也以难以衡量的方式改变了表格的尺寸。我已将分隔线颜色设置为colorClear。但这并不能完全解决问题。 当我尝试在单元格中绘制自定义背景视图时,我希望这些单元格是无缝的,因此,中间保留的一根像素线会导致我遇到问题。有没有更优雅的解决方法,然后使用分组视图然后进行扩展?

22
阻止UIWebView垂直“反弹”?
有谁知道如何阻止UIWebView垂直反弹?我的意思是,当用户触摸其iPhone屏幕时,将其手指向下拖动,并且Webview在我加载的网页上方显示空白点吗? 我研究了以下可能的解决方案,但没有一个对我有用: http://www.iphonedevsdk.com/forum/iphone-sdk-development/996-turn-off-scrolling-bounces-uiwebview.html http://forums.macrumors.com/showthread.php?t=619534 如何阻止UIScrollView水平反弹?

30
如何更改导航栏上“后退”按钮的标题
当前,左栏按钮的默认值是加载当前视图的视图的标题,换句话说,当按下按钮时将显示的视图(后退按钮)。 我想将按钮上显示的文本更改为其他内容。 我尝试将以下代码行放入视图控制器的viewDidLoad方法中,但似乎不起作用。 self.navigationItem.leftBarButtonItem.title = @"Log Out"; 我该怎么办? 谢谢。


9
设置自定义UITableViewCells高度
我正在使用一个自定义UITableViewCell,其中包含一些标签,按钮和要显示的图像视图。单元格中有一个标签,其文本是一个NSString对象,字符串的长度可以是可变的。因此,我无法使用UITableView的heightForCellAtIndex方法为单元格设置恒定的高度。单元格的高度取决于标签的高度,可以使用NSString's sizeWithFont方法确定。我尝试使用它,但是好像我在某处出错。如何解决? 这是用于初始化单元格的代码。 if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) { self.selectionStyle = UITableViewCellSelectionStyleNone; UIImage *image = [UIImage imageNamed:@"dot.png"]; imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(45.0,10.0,10,10); headingTxt = [[UILabel alloc] initWithFrame: CGRectMake(60.0,0.0,150.0,post_hdg_ht)]; [headingTxt setContentMode: UIViewContentModeCenter]; headingTxt.text = postData.user_f_name; headingTxt.font = [UIFont boldSystemFontOfSize:13]; headingTxt.textAlignment = UITextAlignmentLeft; headingTxt.textColor = [UIColor blackColor]; dateTxt …

8
实施API时如何避免在块中捕获自我?
我有一个正在运行的应用程序,正在将其转换为Xcode 4.2中的ARC。预检查警告之一涉及self强烈捕获到导致保留周期的块中。我制作了一个简单的代码示例来说明问题。我相信我理解这意味着什么,但是我不确定实现这种情况的“正确”或推荐方法。 self是MyAPI类的实例 下面的代码被简化为仅显示与与我的问题相关的对象和块的交互 假设MyAPI从远程源获取数据,而MyDataProcessor处理该数据并产生输出 处理器配置有块以传达进度和状态 代码示例: // code sample self.delegate = aDelegate; self.dataProcessor = [[MyDataProcessor alloc] init]; self.dataProcessor.progress = ^(CGFloat percentComplete) { [self.delegate myAPI:self isProcessingWithProgress:percentComplete]; }; self.dataProcessor.completion = ^{ [self.delegate myAPIDidFinish:self]; self.dataProcessor = nil; }; // start the processor - processing happens asynchronously and the processor is released in …

7
使用NSURLSession发送POST请求
更新:找到解决方案。您可以在帖子末尾阅读。 我正在尝试使用对远程REST API执行POST请求NSURLSession。这个想法是使用两个参数发出请求:deviceId和textContent。 问题是服务器无法识别这些参数。服务器部分正常工作,因为我已经使用POSTMAN发送了适用于Google Chrome的POST,并且工作正常。 这是我现在正在使用的代码: NSString *deviceID = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceID"]; NSString *textContent = @"New note"; NSString *noteDataString = [NSString stringWithFormat:@"deviceId=%@&textContent=%@", deviceID, textContent]; NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; sessionConfiguration.HTTPAdditionalHeaders = @{ @"api-key" : @"API_KEY", @"Content-Type" : @"application/json" }; NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration]; NSURL *url = [NSURL URLWithString:@"http://url_to_manage_post_requests"]; NSMutableURLRequest …

30
Xcode下体系结构x86_64的重复符号
我现在有与上述标题相同的问题,但尚未找到正确的答案。我得到了错误: /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o) duplicate symbol _OBJC_METACLASS_$_MoboSDK in: /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Intermediates/TestMoboSDK-Client.build/Debug-iphonesimulator/TestMoboSDK-Client.build/Objects-normal/x86_64/MoboSDK.o /Users/nle/Library/Developer/Xcode/DerivedData/TestMoboSDK-Client-cgodalyxmwqzynaxfbbewrooymnq/Build/Products/Debug-iphonesimulator/libMoboSDK.a(MoboSDK.o) ld: 75 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 任何帮助表示赞赏。 最后, 我找出了导致我添加-ObjC到中的错误的原因Other Linker Flags。删除此值后,我可以成功构建项目,但是我不知道为什么。谁能解释一下?
219 ios  objective-c  xcode5 

26
iOS 7.0下无效的上下文0x0和系统降级
不幸的是,我已经阅读了尽可能多的搜索结果,不幸的是,每个搜索结果似乎都专注于特定的函数调用。 我的问题是,我从多个函数中得到了相同的错误,我猜这是从我使用的函数中回调的。 更糟糕的是,实际的代码在一个自定义的私有框架内,该框架正在另一个项目中导入,因此调试不是那么简单吗? 谁能指出我正确的方向?我感觉我在错误地或在错误的上下文中调用了某些方法,但是此时xcode的输出不是很有帮助。 :CGContextSetFillColorWithColor:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextSetStrokeColorWithColor:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 CGContextSaveGState:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextSetFlatness:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextAddPath:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextDrawPath:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextRestoreGState:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 :CGContextGetBlendMode:无效的上下文0x0。这是一个严重的错误。该应用程序或其使用的库正在使用无效的上下文,从而导致系统稳定性和可靠性整体下降。此通知是礼貌的:请解决此问题。在即将进行的更新中,它将成为致命错误。 当显示自定义视图或其继承的类之一时,可能会发生这些错误。此时它们会产生多次,直到键盘不提供任何输入为止。触摸事件仍然被记录,但是系统速度变慢,最终可能导致未分配的对象错误。 编辑#1:我确实可以访问要导入的框架,但是在导致问题的类中看不到任何奇怪的东西。 编辑2:我刚刚收到一封电子邮件,称iOS 7.1已为开发人员发布。我很好奇,看看情况是否会消失,变得更糟或可以解决。

6
在情节提要中,如何制作自定义单元以与多个控制器一起使用?
我正在尝试在正在使用的应用程序中使用情节提要。在该应用程序中,有“ 列表”和“ 用户”,每个列表和用户都包含其他列表的集合(列表的成员,用户拥有的列表)。因此,我有ListCell和UserCell类。目标是使它们在整个应用程序中可重用(即,在我的任何tableview控制器中)。 那就是我遇到问题的地方。 如何在情节提要中创建可在任何视图控制器中重复使用的自定义tableview单元? 这是到目前为止我尝试过的具体操作。 在Controller#1中,添加了一个原型单元,将类设置为我的UITableViewCell子类,设置了重用ID,添加了标签并将其连接到该类的插座。在Controller#2中,添加了一个空的原型单元,将其设置为相同的类,并像以前一样重用ID。当它运行时,当控制器2中显示单元格时,标签将永远不会显示。在控制器1中正常工作。 在不同的NIB中设计每种电池类型,并连接到适当的电池类别。在情节提要中,添加了一个空的原型单元,并设置其类和重用ID以引用我的单元类。在控制器的viewDidLoad方法中,注册那些NIB文件以获取重用ID。如图所示,两个控制器中的单元都像原型一样是空的。 保留两个控制器中的原型为空,并设置类,并将id重用到我的单元格类中。完全用代码构造单元格的UI。单元在所有控制器中都能正常工作。 在第二种情况下,我怀疑原型始终会覆盖NIB,并且如果我杀死原型单元,则可以为重用ID注册我的NIB。但是,那时我将无法设置从单元到其他框架的序列,这实际上就是使用情节提要的全部要点。 归根结底,我想要两件事:在情节提要中连接基于tableview的流,并在视觉上而不是在代码中定义单元格布局。到目前为止,我还看不到如何做到这两个。

7
applicationWillEnterForeground与applicationDidBecomeActive,applicationWillResignActive与applicationDidEnterBackground
当应用程序从后台唤醒并且您希望它准备好处于活动状态时,哪个合适的委托实现? applicationWillEnterForeground与applicationDidBecomeActive-有什么区别? 当应用程序要进入睡眠状态并且您想为其准备清理和保存数据时,哪个合适的委托实现? applicationWillResignActive与applicationDidEnterBackground-有什么区别? 另外,我注意到当传入的SMS或呼叫进入时,会调用applicationWillResignActive,但是用户选择单击“确定”并继续。我不希望我的应用在这些情况下采取任何措施。我只希望它保持运行而无需任何中间清理,因为用户没有退出该应用程序。因此,我认为仅在applicationDidEnterBackground中进行清理工作更有意义。 非常感谢您对最佳做法的投入,以便选择实施哪些代表来唤醒和入睡以及考虑诸如被SMS /呼叫打断等事件。 谢谢



13
如果模式ViewController呈现样式为UIModalPresentationFormSheet,则iPad键盘将不会消失
注意: 有关iOS 4.3以后的解决方案,请参阅公认的答案(不是最高投票者)。 此问题与在iPad键盘中发现的行为有关,如果在带有导航控制器的模式对话框中显示该行为,该行为将被拒绝。 基本上,如果我向导航控制器显示以下行,如下所示: navigationController.modalPresentationStyle = UIModalPresentationFormSheet; 键盘被拒绝。如果我注释掉这一行,键盘就没问题了。 ... 我有两个textField,用户名和密码。用户名具有“下一步”按钮,密码具有“完成”按钮。如果将其显示在模式导航控制器中,键盘将不会消失。 作品 broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; [self.view addSubview:b.view]; 不起作用 broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil]; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:b]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:navigationController animated:YES]; [navigationController release]; [b release]; 如果我删除导航控制器部件,并单独将“ b”作为模态视图控制器呈现出来,那么它将起作用。导航控制器有问题吗? …

24
如何取消选择一个选定的UITableView单元格?
我正在做一个必须预先选择特定单元格的项目。 我可以使用来预先选择一个单元格-willDisplayCell,但是当用户单击其他任何单元格时都不能取消选择它。 - (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; if ([appDelegte.indexPathDelegate row] == [indexPath row]) { [cell setSelected:YES]; } } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate]; NSIndexPath *indexpath1 = appDelegte.indexPathDelegate; appDelegte.indexPathDelegate = indexPath; [materialTable deselectRowAtIndexPath:indexpath1 animated:NO]; } 你能帮我吗?

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.