Questions tagged «objective-c»

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


6
NSOperation和NSOperationQueue工作线程与主线程
我必须在我的应用程序中执行一系列下载和数据库写入操作。我使用NSOperation和NSOperationQueue相同。 这是应用程序场景: 从某个地方获取所有邮政编码。 对于每个邮政编码,请提取所有房屋。 为每个房子获取居民详细信息 如前所述,我NSOperation为每个任务定义了一个。在第一种情况下(Task1),我正在向服务器发送请求以获取所有邮政编码。内的委托NSOperation将接收数据。然后将此数据写入数据库。数据库操作是在不同的类中定义的。从NSOperation类中,我正在调用数据库类中定义的写函数。 我的问题是数据库写操作是否发生在主线程或后台线程中?当我在A中调用它时, NSOperation我期望它在与相同的线程(不是MainThread)中运行NSOperation。有人可以在处理NSOperation和时解释这种情况吗NSOperationQueue?


4
ARC的@property定义:强还是保留?
使用Xcode 4.2和ARC,我注意到自动生成的代码 NSManagedObject仍然像这样读取属性: @property (nonatomic, retain) NSString * someString; 1)不应该 retain现在应该用strong或代替weak吗? 2)为什么自动生成的代码仍然使用 retain 3)什么是正确的替代品 retain在此财产声明中? 我目前正在使用调试问题NSFetchRequest,并且我认为这可能是问题的根源。有什么想法吗?

4
如何在objc_exception_throw中添加断点?
这是从这个布拉德·拉尔森的答案 SO问题 如果添加两个断点,则应该能够调试这些异常。为此,请转到“运行”。显示 断点并创建两个全局断点(我将它们全局化是因为它们在我的所有应用程序中都非常有用)。第一个应命名为“ objc_exception_throw”,其位置应为“ libobjc.A.dylib”。第二个应为“-[NSException提高]”,其位置应为“ CoreFoundation”。 现在,如果您在启用断点的情况下开始调试应用程序,则应在抛出这些异常时中断它。然后,您应该能够看到导致调试器中发生异常的事件链。 现在在此答案中,我想问一下如何添加提到的位置???

13
如何找到导致malloc“双重释放”错误的原因?
我正在使用Objective-C编写应用程序,但出现此错误: MyApp(2121,0xb0185000)malloc:***对象0x1068310的错误:double free ***在malloc_error_break中设置一个断点以进行调试 当我释放NSAutoreleasePool时,就发生了这种情况,但是我无法弄清楚我要两次释放哪个对象。 我如何设置他的断点? 有没有办法知道什么是“对象0x1068310”?



7
如何使用UIPanGestureRecognizer移动对象?iPhone / iPad
UIPanGestureRecognizer该类有几个示例。例如,我已阅读此书,但仍然无法使用... 在我正在处理的nib文件上,我有一个UIView要与该类一起拖动的(图像上的白色矩形): 在我的.m文件中,我放置了: - (void)setTranslation:(CGPoint)translation inView:(UIView *)view { NSLog(@"Test to see if this method gets executed"); } 并且当我在上拖动鼠标时,该方法不会执行UIView。我也尝试过放置: - (void)pan:(UIPanGestureRecognizer *)gesture { NSLog(@"testing"); } 而且该方法也不会执行。也许我是错的,但是我认为该方法应该像- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event只需要放置该方法的方法一样工作,并且只要有接触就会被调用。 我究竟做错了什么?也许我必须绘制与该方法的连接?如果可以,我该怎么做?




8
如何使用NSURLRequest在Http请求中发送json数据
我是Objective-c的新手,从最近开始,我就在请求/响应中投入了大量精力。我有一个工作示例,可以调用url(通过http GET)并解析返回的json。 下面的工作示例 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [responseData setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog([NSString stringWithFormat:@"Connection failed: %@", [error description]]); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { [connection release]; //do something with the json that comes back ... (the …

4
__weak和__block引用之间有什么区别?
我正在阅读Xcode的文档,这使我感到困惑: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 以下是从文档中复制的: 块是对其捕获的变量的有力参考。如果 self在块内使用,则该块形成对的强引用self,因此,如果 self对块也有强引用(通常这样做),则会产生强引用循环。为了避免循环,您需要__block在块外创建一个对自身的弱引用(或引用),如上例所示。 我不明白“弱(或__block)”是什么意思? 是 __block typeof(self) tmpSelf = self; 和 __weak typeof(self) tmpSelf = self; 这里完全一样吗? 我在文档中发现了另外一块: 注意:在垃圾回收的环境中,如果将__weak和 __block修饰符都应用于变量,则该块将无法确保其保持活动状态。 所以,我完全不解。

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

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.