Questions tagged «objective-c»

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


6
从块内部调用[self methodName]?
我刚碰到块,我想它们就是我要寻找的东西,除了一件事:是否可以从块内调用方法[self methodName]? 这就是我想要做的: -(void)someFunction{ Fader* fader = [[Fader alloc]init]; void (^tempFunction)(void) = ^ { [self changeWindow:game]; //changeWindow function is located in superclass }; [fader setFunction:tempFunction]; } 我已经搜寻了几天,但找不到任何证据证明这是可能的。 这是完全有可能的,还是我在尝试将块用于不是他们想要的东西? 我使用块的原因是我创建了一个Fader类,并且我想存储一个块供其在淡出时执行。 谢谢 编辑:好的,我在建议中添加了内容,但仍然出现EXC_BAD_ACCESS错误... -(void)someFunction{ Fader* fader = [[Fader alloc]init]; __block MyScreen* me = self; void (^tempFunction)(void) = ^ { [me changeWindow:game]; //changeWindow …

2
如何在Objective-C中扩展协议/委托
如果我想扩展像AVAudioPlayer这样的类,什么是向AVAudioPlayerDelegate添加另一个方法的最佳方法是什么?我是否为此做一个类别,是否对其进行扩展?如果我扩展它,那我还必须确保覆盖实际的委托getter / setter吗?我将如何扩展协议?以下给我错误 @protocol AudioTrackDelegate : AVAudioPlayerDelegate { - (void)foo; } @end @interface AudioTrack : AVAudioPlayer { } @end



4
目标C中的私有财产
有没有办法在目标C中声明私有财产?目的是受益于实现某种内存管理方案但尚未公开的综合获取器和设置器。 尝试在类别中声明属性会导致错误: @interface MyClass : NSObject { NSArray *_someArray; } ... @end @interface MyClass (private) @property (nonatomic, retain) NSArray *someArray; @end @implementation MyClass (private) @synthesize someArray = _someArray; // ^^^ error here: @synthesize not allowed in a category's implementation @end @implementation MyClass ... @end

7
什么时候需要将应用程序源包含在测试目标中?
在一个新项目中,我有这个简单的测试 #import <XCTest/XCTest.h> #import "ViewController.h" @interface ViewControllerTests : XCTestCase @end @implementation ViewControllerTests - (void)testExample { // Using a class that is not in the test target. ViewController * viewController = [[ViewController alloc] init]; XCTAssertNotNil(viewController, @""); } @end ViewController.h不是测试目标的一部分,但是它可以编译并运行测试而不会出现任何问题。 我认为这是因为应用程序首先(作为依赖项)构建,然后是测试。链接器然后找出ViewController类是什么。 但是,在具有完全相同的测试和ViewController文件的旧项目中,构建在链接器阶段失败: Undefined symbols for architecture i386: "_OBJC_CLASS_$_ViewController", referenced from: objc-class-ref in …

5
如何使用VideoToolbox解压缩H.264视频流
我在弄清楚如何使用Apple的硬件加速视频框架解压缩H.264视频流时遇到很多麻烦。几个星期后,我发现了这个问题,并想分享一个广泛的例子,因为我找不到一个。 我的目标是给出在WWDC '14会话513中引入的Video Toolbox的详尽指导性示例。我的代码无法编译或运行,因为它需要与基本的H.264流(例如从文件读取的视频或从在线流传输的视频)集成在一起,并且需要根据具体情况进行调整。 我应该提到,除了我在研究该主题时学到的知识以外,我对视频编码/解码的经验很少。我不了解有关视频格式,参数结构等的所有详细信息,所以我只包含了我认为您需要知道的内容。 我正在使用XCode 6.2,并已部署到运行iOS 8.1和8.2的iOS设备。


8
UITextField“值更改”在字段更新时不触发
我已经IBAction连接到UITextFieldInterface Builder中的一个元素。(发生“值已更改”事件时触发) 我还有一个UISlider在调整其值时自动更新TextField元素的。 当我运行我的应用程序时,当我调整滑块时,TextField确实会更新,但是这种情况不会触发“值已更改”事件。当我手动编辑TextField时,值更改事件也不会触发。(尽管使用“ Did Editing End”触发器确实会触发它)。 我的问题是,如何以编程方式更新TextField以及用户调整值时如何触发值更改触发器。

12
如何在iOS上检测设备的方向?
我对如何在iOS上检测设备方向有疑问。我不需要接收更改通知,仅需要接收当前方向。这似乎是一个相当简单的问题,但我无法将其包裹住。以下是我到目前为止所做的事情: UIDevice *myDevice = [UIDevice currentDevice] ; [myDevice beginGeneratingDeviceOrientationNotifications]; UIDeviceOrientation deviceOrientation = myDevice.orientation; BOOL isCurrentlyLandscapeView = UIDeviceOrientationIsLandscape(deviceOrientation); [myDevice endGeneratingDeviceOrientationNotifications]; 在我看来,这应该可行。我使设备能够接收设备方向通知,然后询问设备所处的方向,但随后却无法正常工作,我也不知道为什么。

8
Objective-c iPhone百分比编码字符串吗?
我想获取这些特定字母的百分比编码字符串,如何在Objective-C中做到这一点? Reserved characters after percent-encoding ! * ' ( ) ; : @ & = + $ , / ? # [ ] %21 %2A %27 %28 %29 %3B %3A %40 %26 %3D %2B %24 %2C %2F %3F %23 %5B %5D 百分比编码Wiki 请使用此字符串进行测试,看看它是否有效: myURL = @"someurl/somecontent" 我希望字符串看起来像: myEncodedURL = @"someurl%2Fsomecontent" …

3
Xcode 4警告“ NSURLConnection的表达结果未使用”
我只是尝试进行通常的数据传输。我定义我的NSMutableURLRequest然后调用 [[NSURLConnection alloc] initWithRequest:request delegate:self]; Xcode 3过去可以这样做,但Xcode 4会警告我有关该行的“表达式结果未使用”。该请求确实有效,但我想找到一种摆脱警告的方法。 我想我可以将连接存储在变量中,但我并不是真的需要它,也看不到将其设置为nil下一行的意义(尽管这将删除警告) 请注意:我不是100%知道它是Xcode 4还是启用了ARC。

16
如何调用以当前位置为起始地址的路线的iPhone地图
我知道可以通过调用openURL带有参数saddr和daddr位置字符串或纬度/经度的google maps URL来启动iPhone maps应用程序(请参见下面的示例)。 但是我想知道是否可以将起始地址设为“当前位置”地图书签,以便可以使用“地图”应用的位置处理代码。我的Google搜索工作毫无成果。 例如: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@", myLatLong, latlong]]]; 除非可以代替调用当前位置书签myLatLong。

2
如何使用NSNotificationcenter的对象属性
有人可以告诉我如何在NSNotifcationCenter上使用对象属性。我希望能够使用它将整数值传递给我的选择器方法。 这就是我在UI视图中设置通知侦听器的方式。好像我要传递一个整数值,我不确定用nil替换什么。 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveEvent:) name:@"myevent" object:nil]; - (void)receiveEvent:(NSNotification *)notification { // handle event NSLog(@"got event %@", notification); } 我从另一个这样的类调度通知。该函数传递了一个名为index的变量。我想以某种方式触发此通知。 -(void) disptachFunction:(int) index { int pass= (int)index; [[NSNotificationCenter defaultCenter] postNotificationName:@"myevent" object:pass]; //[[NSNotificationCenter defaultCenter] postNotificationName:<#(NSString *)aName#> object:<#(id)anObject#> }

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.