Questions tagged «objective-c»

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

25
缩放MKMapView以适合注释图钉?
我正在使用MKMapView,并在大约5至10公里的区域中向地图添加了许多注释图钉。当我运行该应用程序时,地图开始缩小以显示整个世界,什么是最好的缩放地图方式以使图钉适合视图? 编辑: 我最初的想法是使用MKCoordinateRegionMake并从我的注释中计算坐标中心,longitudeDelta和latitudeDelta。我很确定这是可行的,但是我只是想检查一下我是否没有遗漏任何明显的东西。 添加的代码,顺便说一句:FGLocation是符合的类MKAnnotation,locationFake是NSMutableArray这些对象之一。总是欢迎评论.... - (MKCoordinateRegion)regionFromLocations { CLLocationCoordinate2D upper = [[locationFake objectAtIndex:0] coordinate]; CLLocationCoordinate2D lower = [[locationFake objectAtIndex:0] coordinate]; // FIND LIMITS for(FGLocation *eachLocation in locationFake) { if([eachLocation coordinate].latitude > upper.latitude) upper.latitude = [eachLocation coordinate].latitude; if([eachLocation coordinate].latitude < lower.latitude) lower.latitude = [eachLocation coordinate].latitude; if([eachLocation coordinate].longitude > upper.longitude) upper.longitude = [eachLocation …

10
Objective-C:布尔与布尔
我看到了“新类型” BOOL(YES,NO)。 我读到,这种类型几乎像一个字符。 为了测试,我做了: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); 很高兴看到两个日志都显示为“ 1”(有时在C ++ bool中为int,其sizeof为4) 所以我只是想知道布尔类型是否有问题或什么? 我可以只使用bool(似乎有效)而不损失速度吗?
192 c  objective-c  types  boolean 

10
等待直到执行了两个异步块,然后再启动另一个块
使用GCD时,我们要等到两个异步块执行完毕后再继续执行下一步。最好的方法是什么? 我们尝试了以下操作,但似乎不起作用: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block2 }); // wait until both the block1 and block2 are done before start block3 // how to do that? dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block3 });

7
为什么ARC仍需要@autoreleasepool?
在大多数情况下,对于ARC(自动引用计数),我们根本不需要考虑使用Objective-C对象进行内存管理。不再允许创建NSAutoreleasePool,但是有一个新语法: @autoreleasepool { … } 我的问题是,当我不应该手动释放/自动释放时,为什么会需要这个? 编辑:总结一下我从所有答案和评论中得出的结论: 新语法: @autoreleasepool { … } 是的新语法 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; … [pool drain]; 更重要的是: ARC使用autorelease和release。 为此需要一个自动释放池。 ARC不会为您创建自动发布池。然而: 每个Cocoa应用程序的主线程中已经有一个自动释放池。 在两种情况下,您可能想使用@autoreleasepool: 当您处于辅助线程中并且没有自动释放池时,必须进行自己的设置以防止泄漏,例如myRunLoop(…) { @autoreleasepool { … } return success; }。 当您希望创建更多本地池时,如@mattjgalloway在其答案中所示。

28
iOS-构建失败,CocoaPods无法找到头文件
我有一个使用CocoaPods的iOS项目。一切工作都顺利进行,直到另一个开发人员开始从事同一项目。他做了一些更改(据我所知仅对代码进行了更改),并在存储库中创建了一个新分支。我已经签出他的分支并尝试构建它,但出现错误:找不到ASLogger / ASLogger.h文件。 即使删除整个项目并重新制作副本并使用“ pods install”。构建失败仍然存在。您知道问题可能在哪里吗?如果您需要更多信息,请询问。

5
如何更改UIButton标题颜色?
我以编程方式创建一个按钮。 button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button addTarget:self action:@selector(aMethod:) forControlEvents:UIControlEventTouchDown]; [button setTitle:@"Show View" forState:UIControlStateNormal]; button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0); [view addSubview:button]; 如何更改标题颜色?

18
在前台iOS中获取App时的推送通知
我在我的应用程序中使用了推送通知服务。当应用程序在后台运行时,我可以在通知屏幕上看到通知(当我们从iOS设备顶部向下滑动时显示的屏幕)。但是如果应用程序位于前台,则委托方法 - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 正在被呼叫,但通知未显示在通知屏幕中。 我想在通知屏幕上显示通知,而不管应用程序是在后台还是在前台。寻找解决方案让我很累。任何帮助是极大的赞赏。


12
动态更改UILabel的字体大小
我目前有一个UILabel: factLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)]; factLabel.text = @"some text some text some text some text"; factLabel.backgroundColor = [UIColor clearColor]; factLabel.lineBreakMode = UILineBreakModeWordWrap; factLabel.numberOfLines = 10; [self.view addSubview:factLabel]; 在我的iOS应用程序的整个生命周期中,factLabel都会获得许多不同的值。有些包含多个句子,有些仅包含5或6个单词。 我该如何设置UILabel字体大小以使文本始终适合我定义的边界?

3
Xcode 4.4发行说明中提到的“ Objective-C Literals”的详细信息是什么?
我正在查看Xcode 4.4的发行说明,并注意到了这一点: LLVM 4.0编译器 Xcode现在包括Apple LLVM编译器版本4.0,其中包括以下新的 Objective -C语言功能:[...] -Objective-C文字:为NSArray,NSDictionary和NSNumber创建文字,与NSString的文字相同 我对此功能很感兴趣。它并不完全清楚,我只是如何文字NSString工作和一个如何使用它们NSArray,NSDictionary和NSNumber。 有什么细节

4
Objective-C隐式转换将整数精度'NSUInteger'(aka'unsigned long')转换为'int'警告
我正在做一些练习,并收到警告,指出: 隐式转换将失去整数精度:将'NSUInteger'(aka'unsigned long')转换为'int' #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSArray *myColors; int i; int count; myColors = @[@"Red", @"Green", @"Blue", @"Yellow"]; count = myColors.count; // <<< issue warning here for (i = 0; i < count; i++) NSLog (@"Element %i = %@", i, …

12
改组NSMutableArray的最佳方法是什么?
如果您有个NSMutableArray,您如何随机洗牌? (我对此有自己的答案,发布在下面,但是我是可可的新手,我想知道是否有更好的方法。) 更新:正如@Mukesh所指出的那样,从iOS 10+和m​​acOS 10.12+开始,有一种-[NSMutableArray shuffledArray]方法可以用于随机播放。有关详细信息,请参见https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc。(但是请注意,这将创建一个新数组,而不是将元素改组到位。)


14
UITableViewCell显示白色背景,无法在iOS7上修改
我已经实现了一个继承自的自定义表格视图单元格类UITableViewCell。tableview包含背景图像,所以我希望单元格的背景是透明的。在iOS7之前看起来很棒。 但是,在iOS7中,该单元格始终以白色背景显示。 即使对于2015年的Xcode7,情节提要中也存在错误:您必须在代码中设置单元格的背景色。

4
Xcode 5中提供了哪些新的文档命令?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使它成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 一个Xcode中5的新功能是一种特殊的注释语法来记录自己的代码的能力。格式类似于doxygen,但似乎仅支持这些功能的子集。 支持哪些命令,不支持哪些命令? 它们的用法是否与doxygen不同?

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.