Questions tagged «objective-c»

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

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

3
实施NSCopying
我已经阅读了NSCopying文档,但对于如何实施所需的内容仍然不确定。 我的课Vendor: @interface Vendor : NSObject { NSString *vendorID; NSMutableArray *availableCars; BOOL atAirport; } @property (nonatomic, copy) NSString *vendorID; @property (nonatomic, retain) NSMutableArray *availableCars; @property (nonatomic, assign) BOOL atAirport; - (id)initFromVehVendorAvailsDictionary:(NSDictionary *)vehVendorAvails; @end 的Vendor类有称为对象的数组Car。 我的Car对象: @interface Car : NSObject { BOOL isAvailable; NSString *transmissionType; NSMutableArray *vehicleCharges; NSMutableArray *fees; } @property …


4
为什么我不能在Swift中的UIViewController上调用默认的super.init()?
我不是UIViewController从情节提要中使用a ,而是要有一个自定义init函数,可以在其中传递NSManagedObjectID某些对象的。我只想像super.init()在Objective-C中一样打电话。像这样: init(objectId: NSManagedObjectID) { super.init() } 但是我收到以下编译器错误: 必须调用超类UIViewController的指定初始化程序 我可以不再这样做吗?

8
从Objective-C类调用Swift函数
我有一个旧的Objective-C项目,我想调用新的Swift函数和对象,我已经创建了文件“ <ProjectName>-Bridging-Header.h”和“ <ProjectName>-Swift.h” 对我来说,从Swift调用函数到Objective-C很容易,但是我有一个反向问题。 因此,我创建了一个简单的类“ System.Swift” import Foundation @objc class System : NSObject { @objc func printSome() { println("Print line System"); } } 现在我尝试按照此处和<...>-Swift.h文件内的文档进行操作 @class System; @interface System : NSObject -(void)printSome; @end 并且已将其导入到Objective-C类中。此时,在我的Objective-C代码的Objective C类(当前为UIViewController)内部,我尝试调用“ printSome”方法: - (void)viewDidLoad { [super viewDidLoad]; System * sis = [[System alloc] init]; [sis printSome]; //any …

7
从不兼容的类型'ViewController * const_strong'分配给'id <Delegate>'
在我的整个应用中,设置时会收到语义问题警告ViewController.delegate = self。我已经搜索并找到了类似的帖子,但没有一个能够解决我的问题。 ViewController.m: GameAddViewController *gameAddViewContoller = [[navigationController viewControllers] objectAtIndex:0]; gameAddViewContoller.delegate=self; 设置时出现错误消息.delegate=self。 GameAddViewController.h: @protocol GameAddViewControllerDelegate &lt;NSObject&gt; - (void)gameAddViewControllerDidCancel:(GameAddViewController *)controller; - (void)gameAddViewController:(GameAddViewController *)controller didAddGame:(Game *) game; @end @interface GameAddViewController : UITableViewController &lt;GameAddViewControllerDelegate&gt; { sqlite3 *pitchcountDB; NSString *dbPath; } @property (nonatomic, strong) id &lt;GameAddViewControllerDelegate&gt; delegate; ... @end ViewController.h: #import "GameAddViewController.h" @class ViewController; …



11
找不到适用于应用程序的有效“ aps-environment”权利字符串
我正在尝试配置我的应用程序以支持推送通知,但始终收到此错误:无法获取令牌,错误:错误Domain = NSCocoaErrorDomain代码= 3000“找不到适用于应用程序的有效“ aps-environment”授权字符串” UserInfo = 0x1f818fc0 { NSLocalizedDescription =找不到适用于应用程序的有效“ aps-environment”授权字符串} 我确实启用了我的应用程序以支持推送通知(目前仅用于开发)。 我确实在启用推送通知之后创建了配置文件。 我的捆绑包标识符与配置文件中显示的标识符相同。 在我的配置文件中,有一个字符串:aps-environment 我确保在项目和目标的“代码签名身份”部分下,所有值都被选择为我的配置文件。 还有其他想法吗?谢谢。

4
使用自动布局动态更改子视图后调整视图的大小
我不能为上帝的爱而努力,而这正是调整规模的Superview的用处。 我有一个UIView *superview 4 UILabels。2个用作其他2个的标头。 所有4个内容都是动态的,都来自数据库。 SizeToFitvs vs SizeThatFits:(CGSize)vs UIView systemLayoutSizeFittingSize:,通过UILayoutFittingCompressedSize或UILayoutFittingExpandedSize。 我以编程方式使用自动布局,并将Superview高度设置为等于或大于虚拟数字。 在那里,我如何使用这些SizeToFitVS sizeThatFits:(CGSize)VS UIView systemLayoutSizeFittingSize:,无论是传球UILayoutFittingCompressedSize还是UILayoutFittingExpandedSize。我在这里已经阅读了很多技巧,但最终没有结果。 我是否需要重新计算特定位置的Superview约束。Maby在其控制器类中将高度设置为“ @property”,然后删除并读取它吗?Atm我已尝试将所有内容放到任何地方,然后再放一些。我仍然得到相同大小的最终结果,虚拟高度和文本漂浮在外面。即使在子视图上设置了clipsToBound之后。 我正在挠..帮助

2
这个iOS是什么样的讽刺错误?
我有一些用于排序日历日期的代码,如下所示: #if !(TARGET_IPHONE_SIMULATOR) NSString *formatString = [NSDateFormatter dateFormatFromTemplate:@"HH:mm dd MMM yyyy" options:0 locale:[NSLocale currentLocale]]; [fmt setDateFormat:formatString]; #else [fmt setDateFormat:@"HH:mm dd MMM yyyy"]; #endif 如果我在模拟器中运行,一切正常。如果我在设备上运行它,则会收到此讽刺调试消息。 2012-09-19 22:40:13.972 APPNAME [4923:907] * -[__ NSCFCalendar components:fromDate:]:日期不能为零 我的意思是,您认为该操作应以零日期表示什么? 现在已经避免了异常。 这些错误中的一些错误将在此投诉中报告,然后进一步的违规将简单地无提示地执行nil导致的任何随机操作。这是这次发生的回溯(由于编译器优化,某些帧可能会丢失): 您必须嘲笑它​​,但是我不确定我的dateFormatFromTemplate:代码有什么问题。任何帮助,将不胜感激。 运行Xcode V 4.5 btw 更新: 回溯: 0 CoreFoundation 0x39ff0e55 + 84 1 APPNAME 0x00040be1-[MeetingsViewController …


6
为什么masksToBounds = YES可以防止CALayer阴影?
使用以下代码段,我向一个UIView添加了阴影效果。哪个效果很好。但是,一旦我将视图的masksToBounds属性设置为YES。阴影效果不再呈现。 self.myView.layer.shadowColor = [[UIColor blackColor] CGColor]; self.myView.layer.shadowOpacity = 1.0; self.myView.layer.shadowRadius = 10.0; self.myView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); self.myView.layer.cornerRadius = 5.0; self.myView.layer.masksToBounds = YES; // &lt;-- This is causing the Drop shadow to not be rendered UIBezierPath *path = [UIBezierPath bezierPathWithCurvedShadowForRect:self.myView.bounds]; self.myView.layer.shadowPath = path.CGPath; self.myView.layer.shouldRasterize = YES; 您对此有什么想法吗?


2
在Mac上无法通过ARC使用responsToSelector
respondsToSelector在ARC环境中致电时,出现以下错误消息Automatic Reference Counting Issue No known instance method for selector respondsToSelector: 这是标题 #import &lt;AppKit/AppKit.h&gt; @class MTScrollView; @protocol MTScrollViewDelegate -(void)scrollViewDidScroll:(MTScrollView *)scrollView; @end @interface MTScrollView : NSScrollView { } @property(nonatomic, weak) id&lt;MTScrollViewDelegate&gt;delegate; @end 这是实施文件 #import "MTScrollView.h" @implementation MTScrollView @synthesize delegate; - (void)reflectScrolledClipView:(NSClipView *)aClipView { [super reflectScrolledClipView:aClipView]; if([delegate respondsToSelector:@selector(scrollViewDidScroll:)]) { [delegate scrollViewDidScroll:self]; } …

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.