Tag: objective c

cocoa错误3840使用JSON(iOS)

我试图发送数据到服务器,并以JSON格式接收响应。 问题是,服务器必须返回“成功”或“失败”,但它返回“(空)”。 这是返回的错误: 错误域= NSCocoaErrorDomain代码= 3840“该操作无法完成(cocoa错误3840.)”(JSON文本没有开始与数组或对象和选项,以允许片段没有设置)UserInfo = XXXXXXXXX {NSDebugDescription = JSON文本没有开始数组或对象和选项,以允许片段没有设置。} 是否有可能是在服务器脚本中的错误? 任何想法? 谢谢! 这是我的function发送数据和接收响应: – (void) putData:(NSString *)parametre valor:(NSString *)valor { NSString *rawString = [NSString stringWithFormat:@"%@=%@", parametre, valor]; NSData *data = [rawString dataUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:@"http://www.xxx.xxx/xxx.php"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"PUT"]; [request setHTTPBody:data]; NSURLResponse *response; NSError *error; NSData *responseData = […]

MFMailComposeViewController抛出一个viewServiceDidTerminateWithError,然后在使用自定义标题字体时退出

我遇到了很久以来遇到的最奇怪的问题,而且我已经没有想法了。 所以我有一个MFMailComposeViewController是通过在UIButton上点击而启动的,它启动邮件编辑器视图就好了。 你看到我分配的主题,但在to:或body字段被填充之前,窗口会闪烁并消失。 它会抛出这个错误: viewServiceDidTerminateWithError:Error Domain = XPCObjectsErrorDomain Code = 2“操作无法完成(XPCObjectsErrorDomain错误2)” 现在,这是疯狂的一部分。 如果我切换到另一个也使用MFMailComposeViewController的应用程序,并启动该应用程序,然后切换回我的应用程序,并再次启动邮件编辑器,它工作得很好。 我无法解释这一点。 这似乎只是运行iOS 6的手机不是 iPhone 5的问题。 我已经search了四周,似乎无法find谁遇到了同样的问题的其他人。 任何人有任何build议? 我已经得到了MessageUI.framework的链接,我也发现这不是在模拟器或设备上工作,但是当我也链接Security.framework它开始工作在模拟器,但它仍然无法正常工作在设备上。 我启动MFMailComposeViewController的代码如下: 在.h文件中 #import <MessageUI/MessageUI.h> #import <MessageUI/MFMailComposeViewController.h> 在.m文件中 -(void)displayComposerSheet { MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [picker setSubject:@"Support Request"]; // Set up recipients NSArray *toRecipients = [NSArray arrayWithObject:@"support@domain.com"]; [picker setToRecipients:toRecipients]; // Fill […]

int,NSInteger和NSUInteger之间的区别

int , NSInteger和NSUInteger在Objective-C中的主要区别是什么? 哪一个更适合在应用程序中使用,为什么?

错误:“没有身份可用于签名”Xcode 4.3.1

我将我的OSX从Snow Leopard升级到Lion,我下载了Xcode 4.3.1。现在,当我尝试validation并发布我的应用程序时,我得到了第一个截图。 如果我点击下载标识符button,我会得到第二个屏幕截图。 有什么build议?

为什么使用id,当我们可以只使用NSObject?

我知道,当我们想创build一个未知的值对象,我们使用ID。 不过,我很好奇,为什么苹果select在运行时决定它的值的id,当时每个对象都是NSObject的子类。 所以,而不是id delegate我们可以使用NSObject *delegate有谁知道为什么? 谢谢。

传递一个类作为参数?

我一直相信可以通过一个类作为方法参数,但是我在实现这个概念时遇到了麻烦。 现在我有这样的东西: – (id)navControllerFromView:(Class *)viewControllerClass title:(NSString *)title imageName:(NSString *)imageName { viewControllerClass *viewController = [[viewControllerClass alloc] init]; UINavigationController *thisNavController = [[UINavigationController alloc] initWithRootViewController: viewController]; thisNavController.tabBarItem = [[UITabBarItem alloc] initWithTitle: title image: [UIImage imageNamed: imageName] tag: 3]; return thisNavController; } 我这样称呼它: rootNavController = [ self navControllerFromView:RootViewController title:@"Contact" imageName:@"my_info.png" ]; 这张照片有什么问题?

XCTAssertEqual错误:(“3”)不等于(“3”)

NSMutableArray *arr = [NSMutableArray array]; [arr addObject:@"1"]; [arr addObject:@"2"]; [arr addObject:@"3"]; // This statement is fine. XCTAssertTrue(arr.count == 3, @"Wrong array size."); // This assertion fails with an error: ((arr.count) equal to (3)) failed: ("3") is not equal to ("3") XCTAssertEqual(arr.count, 3, @"Wrong array size."); 我对XCTAssertEqual有什么不了解? 为什么最后的断言失败?

快速枚举零对象

这里应该发生什么? 安全吗? NSArray *nullArray=nil; for (id obj in nullArray) { // blah } 更具体地说,我必须这样做: NSArray *array=[thing methodThatMightReturnNil]; if (array) { for (id obj in array) { // blah } } 还是这样好吗? for (id obj in [thing methodThatMightReturnNil]) { // blah }

如何在故事板场景中embedded自定义视图xib?

我在XCode / iOS世界比较新, 我已经做了一些体积大小的故事板的应用程序,但我并没有削减整个笔尖/西克事情的牙齿。 我想使用相同的场景工具来devise/布局可重用的视图/控件。 所以我为我的视图子类创build了我的第一个xib并绘制了它: 我有我的网点连接和约束设置,就像我习惯做的故事板。 我将我的File Owner的类设置为我的自定义UIView子类的类。 所以我假设我可以用一些API来实例化这个视图子类,并且将如图所示configuration/连接。 现在回到我的故事板,我想embedded/重用这个。 我在表格视图原型单元格中这样做: 我有一个看法。 我已经把它的类设置为我的子类。 我已经创build了一个出口,所以我可以操纵它。 64美元的问题是我在哪里/如何表明仅仅把一个空的/未configuration的视图子类的实例放在那里是不够的,而是使用我创build的.xib来configuration/实例化呢? 这将是非常酷,如果在XCode6中,我可以只input用于给定的UIView的XIB文件,但我没有看到一个领域,所以我假设我必须在代码的地方做一些事情。 (我确实看到过类似的其他问题,但是还没有发现任何问题,或者XCode6 / 2015的最新消息) 更新 我可以通过执行我的表格单元的awakeFromNib来获得这种工作,如下所示: – (void)awakeFromNib { // gather all of the constraints pointing to the uncofigured instance NSArray* progressConstraints = [self.contentView.constraints filteredArrayUsingPredicate: [NSPredicate predicateWithBlock:^BOOL(id each, NSDictionary *_) { return (((NSLayoutConstraint*)each).firstItem == self.progressControl) || (((NSLayoutConstraint*)each).secondItem == self.progressControl); […]

使用isKindOfClass是否安全:针对NSString实例来确定types?

从NSObject中的isKindOfClass:方法文档: 在类集群表示的对象上使用此方法时要小心。 由于类集群的性质,返回的对象可能并不总是您所期望的types。 然后文档继续给出一个例子,为什么你不应该问一个NSArray实例的以下内容: // DO NOT DO THIS! if ([myArray isKindOfClass:[NSMutableArray class]]) { // Modify the object } 现在给一个不同的用法的例子,假设我有一个NSObject的实例,我想确定是否有一个NSString或NSArray。 这两种types都是类集群 – 但从上面的文档看来,危险在于对isKindOfClass的回答:太肯定了(有时候当你真的没有可变数组时,回答YES),而是询问关于简单成员资格的问题一个集群仍然是有效的。 一个例子: NSObject *originalValue; // originalValue gets set to some instance if ( [originalValue isKindOfClass:[NSString class]] ) // Do something with string 这个假设是否正确? 使用isKindOfClass:对类集群实例来确定成员资格真的很安全吗? 我特别感兴趣的是无处不在的NSString,NSArray和NSDictionary的答案,但我很想知道它是否可泛化。