Questions tagged «cocoa»

Cocoa是Apple的macOS应用程序开发框架,由Foundation,Application Kit和Core Data组成。对iOS问题使用“可可触摸”标签。

4
使用常量NSString作为NSUserDefaults的键
我正在使用NSUSerDefaults存储用户首选项。我记得在某处读过,将键设置为常量是一个好主意-我同意。以下代码是我目前拥有的: [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:polygon.numberOfSides] forKey:@"polygonNumberOfSides"]; 我尝试将其更改为: @implementation Controller NSString const *kPolygonNumberOfSides = @"polygonNumberOfSides"; -(void)savePolygonInfo { [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:polygon.numberOfSides] forKey:kPolygonNumberOfSides]; } 在执行此操作时,它会产生“ warning: passing argument 1 of 'objectForKey:' discards qualifiers from pointer target type”。我渴望使我的代码不受编译器警告的影响。如何解决此警告?




10
基于视图的NSTableView具有动态高度的行
我有一个基于视图的应用程序NSTableView。在此表视图中,我有一些行,这些行的单元格内容由NSTextField启用了自动换行的多行组成。根据的文本内容,NSTextField显示单元格所需的行大小会有所不同。 我知道我可以实现该NSTableViewDelegate方法-tableView:heightOfRow:返回高度,但是高度将基于上的自动换行来确定NSTextField。的自动换行NSTextField类似地基于NSTextFieldis的宽度……由的宽度确定NSTableView。 太...我想我的问题是...对此有什么好的设计模式?似乎我尝试的所有操作都变得混乱不堪。由于TableView需要了解单元格的高度才能对其进行布局...并且NSTextField需要了解其布局才能确定自动换行...并且单元格需要了解自动换行才能确定其高度...这是一个圆形的混乱局面...这让我发疯。 有什么建议吗? 如果重要的话,最终结果也将具有可编辑的内容NSTextFields,可以调整其大小以适应其中的文本。我已经在视图级别进行此操作,但是tableview尚未调整单元格的高度。我认为一旦解决了高度问题,我将使用-noteHeightOfRowsWithIndexesChanged方法通知表格视图高度已更改……但是仍然要向委托人询问高度……因此,我很困惑。 提前致谢!

11
获取时间戳格式的当前NSDate
我有一个获取当前时间并将其设置为字符串的基本方法。但是,如何获取自1970年以来的UNIX时间戳格式的当前日期和时间的格式? 这是我的代码: NSDate *currentTime = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh-mm"]; NSString *resultString = [dateFormatter stringFromDate: currentTime]; 是否可以NSDateFormatter将'resultString'更改为时间戳?


7
了解NSString比较
以下两个比较的评估结果均为true: 1) @"foo" == @"foo"; 2) NSString *myString1 = @"foo"; NSString *myString2 = @"foo"; myString1 == myString2; 但是,在某些情况下,肯定NSString无法使用相等运算符比较两个s,而是必须使用两个运算符[myString1 isEqualToString:myString2]。有人可以阐明这一点吗?

4
“ EXC_BREAKPOINT(SIGTRAP)”异常是否由调试断点引起?
我有一个多线程应用程序,该程序在所有测试机上都非常稳定,并且几乎对我的每个用户都是稳定的(基于对崩溃的抱怨)。不过,该应用程序经常会崩溃,因为一位用户足够发送崩溃报告。所有崩溃报告(约10个连续报告)看起来基本相同: Date/Time: 2010-04-06 11:44:56.106 -0700 OS Version: Mac OS X 10.6.3 (10D573) Report Version: 6 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000002, 0x0000000000000000 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 com.apple.CoreFoundation 0x90ab98d4 __CFBasicHashRehash + 3348 1 com.apple.CoreFoundation 0x90adf610 CFBasicHashRemoveValue + 1264 2 com.apple.CoreText 0x94e0069c …

3
有没有一种方法可以在NSString stringWithFormat中指定参数位置/索引?
C#的语法允许您以字符串格式说明符指定参数索引,例如: string message = string.Format("Hello, {0}. You are {1} years old. How does it feel to be {1}?", name, age); 您可以多次使用参数,也可以省略使用时提供的参数。另一个问题提到了C / C ++的相同格式%[index]$[format],例如%1$i。我无法让NSString完全遵守此语法,因为当从格式中省略参数时,它确实表现良好。以下内容无法按预期方式工作(EXC_BAD_ACCESS,因为它尝试将age参数作为NSObject *取消引用): int age = 23; NSString * name = @"Joe"; NSString * message = [NSString stringWithFormat:@"Age: %2$i", name, age]; 仅当格式中没有缺少参数时才尊重位置参数(这似乎是一个奇怪的要求): NSString * message = [NSString stringWithFormat:@"Age: …

9
NSLocale currentLocale始终返回“ en_US”而不是用户当前的语言
我正在将iPhone应用程序国际化-我需要根据用户当前的语言环境对某些视图进行编程更改。我疯了,因为无论iPhone模拟器或实际硬件上的语言偏好是什么,locale总是评估为“ en_US”: NSString *locale = [[NSLocale currentLocale] localeIdentifier]; NSLog(@"current locale: %@", locale); 疯狂的是,该应用程序的其余部分表现正常。从Localization.strings文件中选择了正确的字符串并在界面中使用了该语言,并且使用了针对所选语言环境的正确的.xib文件。 我也尝试了以下方法,但均无济于事: NSString *locale = [[NSLocale autoupdatingCurrentLocale] localeIdentifier]; NSLog(@"current locale: %@", locale); 有什么简单的我想念的吗?偏好还是进口? 我曾经做过的事: 正如Darren的答案所暗示的那样,我要查找的首选项不在中NSLocale,而是在这里: NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults]; NSArray* languages = [userDefaults objectForKey:@"AppleLanguages"]; NSString* preferredLanguage = [languages objectAtIndex:0]; NSLog(@"preferredLanguage: %@", preferredLang); 彼得的答案似乎是一个更好的解决方案: NSArray* preferredLanguages = [NSLocale …

9
NSDictionary,有序密钥
我有一个NSDictionary(存储在plist中),我基本上将其用作关联数组(字符串作为键和值)。我想在我的应用程序中使用键数组,但是我希望它们按特定的顺序排列(不是我可以编写算法将其排序的顺序)。我总是可以存储一个单独的键数组,但是这似乎有点麻烦,因为我总是必须更新字典的键以及数组的值,并确保它们始终对应。当前,我只使用[myDictionary allKeys],但是显然,这将以任意,无保证的顺序返回它们。我缺少Objective-C中的数据结构吗?有人对如何更优雅地做到这一点有任何建议吗?

3
什么是强属性属性
我正在为开发人员使用Xcode Beta,并注意到一些细微的差异。其中之一是声明属性的新属性。 @property(strong)IBOutlet NSArrayController *arrayControl; 我的问题是:强属性是什么意思?它会取代一些旧的还是全新的?我已经搜索了谷歌和开发人员文档,还没有找到任何东西。在我知道它是什么之前,我一直在犹豫使用它。 提前致谢

5
如何在Xcode中弃用方法
我们有我们要交付给客户的库,并且我想将某些方法标记为“已弃用”,因为我们已对其进行了更改(就像Apple在iPhone SDK中所做的那样)。 我已经看到了__OSX_AVAILABLE_BUT_DEPRECATED预处理器宏,该宏映射到__AVAILABILITY_INTERNAL,该宏映射到__attribute__((deprecated))... 好吧,我对此东西有些困惑! 有人知道吗?

3
检查NSString实例是否包含在NSArray中
我有一个带有一堆字符串的数组,我想检查数组中是否包含某个字符串。如果containsObject在数组上使用:消息,则得到正确的结果。NSString具有相同字符串的所有对象都指向同一对象吗?还是为什么containsObject:工作? NSArray *stringArray = [NSArray arrayWithObjects:@"1",@"2",@"3",anotherStringValue, nil]; if([stringArray containsObject:@"2"]){ //DO SOMETHING }

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.