Questions tagged «objective-c»

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

4
如何在Objective-C中使用Swift结构
简单地说,我有一个存储应用程序常量的结构,如下所示: struct Constant { static let ParseApplicationId = "xxx" static let ParseClientKey = "xxx" static var AppGreenColor: UIColor { return UIColor(hexString: "67B632") } } Constant.ParseClientKey例如,可以通过调用在Swift代码中使用这些常量。但是在我的代码中,它还包含一些Objective-C类。所以我的问题是如何在Objective-C代码中使用这些常量? 如果这种声明常量的方法不好,那么创建在Swift和Objective-C代码中使用的全局常量的最佳方法是什么?

6
iOS:比较两个日期
我有一个NSDate,我必须和另外两个比较NSDate,我试着用NSOrderAscending和NSOrderDescending,但如果我的日期是在其他两个日期平等吗? 例如:如果我有一个myDate = 24/05/2011 和另外两个分别是一个= 24/05/2011和两个24/05/2011,我该怎么用?

14
如何拦截MKMapView或UIWebView对象上的触摸事件?
我不确定自己在做什么错,但是我试图抓住MKMapView物体。我通过创建以下类将其子类化: #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> @interface MapViewWithTouches : MKMapView { } - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event; @end 并执行: #import "MapViewWithTouches.h" @implementation MapViewWithTouches - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event { NSLog(@"hello"); //[super touchesBegan:touches withEvent:event]; } @end 但是当我使用此类时,在控制台上什么也看不到: MapViewWithTouches *mapView = [[MapViewWithTouches alloc] initWithFrame:self.view.frame]; [self.view insertSubview:mapView atIndex:0]; 知道我在做什么错吗?

2
NSDictionary-需要检查字典是否包含键值对
我只需要问以下问题。假设我有一本字典。 NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init]; [xyz setValue:@"sagar" forKey:@"s"]; [xyz setValue:@"amit" forKey:@"a"]; [xyz setValue:@"nirav" forKey:@"n"]; [xyz setValue:@"abhishek" forKey:@"a"]; [xyz setValue:@"xrox" forKey:@"x"]; 现在,我需要检查如下 [xyz确实包含键“ b”的值?对还是没有? 问题是如何? 另一个问题是如何仅计算总键值对? 举例来说 NSInteger mCount=[xyz keyCounts];

14
Xcode 4(和依赖项)的编译,生成或存档问题
在过去的几周中,这个问题有所发展,涵盖了与 xcode4 (并且升级项目的时间较早 代码s)。 但是,通过遵循同一组说明可以解决许多问题。 如果您有以下任何问题,请尝试接受的答案中的方法: Xcode 4无法存档应用 Xcode 4创建了不可用的存档 Xcode 4不会创建.ipa Xcode 4由于预处理器错误而无法编译 Xcode 4找不到标题 Xcode 4的代码完成不起作用 项目相关性无法编译 添加依赖关系会导致上述任何问题 原始问题 标题:Xcode 4中的“找不到词法或预处理程序问题文件” 我在Xcode 4中有一个项目,该项目可以很好地构建并在设备和模拟器上运行,但是在查找与静态库关联的头文件时尝试将其存档时出错: In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15: In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23: In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11: In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10: /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file …

27
无法使用nil模型创建NSPersistentStoreCoordinator
我第一次接触Core Data时,在设备上运行代码时遇到以下错误,但在模拟器上工作正常。 *由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“无法使用nil模型创建NSPersistentStoreCoordinator” 我的一些可能导致问题的方法: - (NSManagedObjectContext *)managedObjectContext { if (__managedObjectContext != nil) { return __managedObjectContext; } NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; if (coordinator != nil) { __managedObjectContext = [[NSManagedObjectContext alloc] init]; [__managedObjectContext setPersistentStoreCoordinator:coordinator]; } return __managedObjectContext; } /** Returns the managed object model for the application. If the model …

4
以编程方式访问资产目录
我知道这是一项新功能,可能无法实现,但是我很希望能够使用资产目录来组织我的资产,但是我可以通过编程方式访问所有图像。我现在将如何访问我的图像?我是否仍按其文件名访问它们,如下所示: [UIImage imageNamed:@"my-asset-name.png"]; 看来,资产目录没有引用该扩展名,因此如果没有“ .png”,则访问它会更有效吗? 我之所以要求自己而不是自己进行测试,是因为即使删除了资产和资产目录,然后清理了构建文件夹,我仍然可以在应用程序中访问资产。在实施资产目录时,这使我无法测试资产目录。 浏览资产目录后,我发现了每个资产的“ Contents.json”,其格式如下: { "images" : [ { "idiom" : "universal", "scale" : "1x" }, { "idiom" : "universal", "scale" : "2x", "filename" : "my-asset@2x.png" } ], "info" : { "version" : 1, "author" : "xcode" } } 我仍然不确定应该如何访问它,但这也许会有所帮助吗?

5
在Swift中,如何声明符合一个或多个协议的特定类型的变量?
在Swift中,我可以通过声明如下来显式设置变量的类型: var object: TYPE_NAME 如果我们想更进一步,并声明一个符合多种协议的变量,可以使用protocol声明式: var object: protocol<ProtocolOne,ProtocolTwo>//etc 如果我想声明一个符合一个或多个协议并且也是特定基类类型的对象,该怎么办?相当于Objective-C的样子如下: NSSomething<ABCProtocolOne,ABCProtocolTwo> * object = ...; 在Swift中,我希望它看起来像这样: var object: TYPE_NAME,ProtocolOne//etc 这使我们能够灵活处理基本类型的实现以及协议中定义的添加接口。 还有其他更明显的方式可能会让我丢失吗? 例 例如,假设我有一家UITableViewCell工厂负责返回符合协议的单元。我们可以轻松地设置一个泛型函数来返回符合协议的单元格: class CellFactory { class func createCellForItem<T: UITableViewCell where T:MyProtocol >(item: SpecialItem,tableView: UITableView) -> T { //etc } } 稍后我想在利用类型和协议的同时使这些单元出队 var cell: MyProtocol = CellFactory.createCellForItem(somethingAtIndexPath) as UITableViewCell 这会返回错误,因为表视图单元格不符合协议... 我想能够指定单元格是a …


4
比较两个CGRect
我需要检查我的视图框架是否等于给定的CGRect。我试图这样做: CGRect rect = CGRectMake(20, 20, 20, 20); if (self.view.frame == rect) { // do some stuff } 但是,我说错了Invalid operands to binary expression('CGRect' (aka 'struct CGRect') and 'CGRect')。为什么我不能简单地比较两个CGRects?


2
ARC是否支持调度队列?
我正在阅读有关“调度队列的内存管理”的苹果文档: 即使实现垃圾收集的应用程序,您仍然必须保留并释放您的调度队列和其他调度对象。Grand Central Dispatch不支持垃圾回收模型来回收内存。 我知道ARC不是垃圾收集器,但我想确定我不需要dispatch_retain和dispatch_release我的dispatch_queue_t

7
ViewController responsesToSelector:消息发送到已释放实例(CRASH)
好的,这是交易,我讨厌提出有关调试和崩溃的问题。因为我平时处理他们自己,但我不能让我的身边这样一来,即使在已经观看多个问题。 好的,所以这是问题所在,我在此堆栈跟踪中随机打开和关闭我的应用程序: *** -[ViewController respondsToSelector:]: message sent to deallocated instance 0x1e5d2ef0 在哪里ViewController可以有所不同,有时会在我的代码崩溃的地方,有否关联到特定的ViewController和并不拥有或调用它。 另外,要获得该控制台的跟踪信息,我已经启用了Zombies,否则我将完全不获得任何控制台打印信息,而只会得到:objc_msgSend,这意味着我正在传递已发布的消息。但是我找不到那儿...我真的被卡住了!通常,我总是调试崩溃,所以我真的很坚持。 同样,它在不同时间,不同时间在不同位置崩溃。和它崩溃的地方几乎没有任何关系ViewController。我觉得这很令人困惑。 您需要我的任何代码吗?我有很多文件,由于它在不同地方崩溃,因此分发我的代码会很麻烦! 我尝试添加没有运气的符号断点,并且iOS的Instruments应用程序上没有Zombies。我无法在模拟器上运行我的应用程序,因为它具有不支持的架构框架。 感谢大家...
95 objective-c  ios  xcode  crash 

7
NSAutoreleasePool自动释放池如何工作?
据我了解,使用alloc,new或copy创建的任何内容都需要手动释放。例如: int main(void) { NSString *string; string = [[NSString alloc] init]; /* use the string */ [string release]; } 我的问题是,这样难道不是同样有效吗?: int main(void) { NSAutoreleasePool *pool; pool = [[NSAutoreleasePool alloc] init]; NSString *string; string = [[[NSString alloc] init] autorelease]; /* use the string */ [pool drain]; }

18
UICollectionView中的单元格左对齐
我在项目中使用UICollectionView,其中一行上有多个宽度不同的单元格。根据:https : //developer.apple.com/library/content/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/UsingtheFlowLayout/UsingtheFlowLayout.html 它以相等的填充将单元格分布到整个行中。发生这种情况是预期的,除了我想左对齐它们,并硬编码填充宽度。 我认为我需要继承UICollectionViewFlowLayout的子类,但是在在线阅读了一些教程等之后,我似乎并不清楚它是如何工作的。

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.