我想知道是否有人可以解释目标C中的非正式协议? 我尝试了解苹果文档和其他一些书籍,但是我的头仍然在旋转,所以我会很感激,如果有人可以用例子来解释。 谢谢。
我试图围绕C和Objective-C中的一些使用和语法差异来解决问题。 特别是,我想知道在C和Objective-C中点运算符和箭头运算符的使用方式(以及为什么)有所不同。 这是一个简单的例子。 C代码: // declare a pointer to a Fraction struct Fraction *frac; … // reference an 'instance' variable int n = (*frac).numerator; // these two expressions int n = frac->numerator; // are equivalent Objective-C代码: // declare a pointer to a Fraction Fraction *frac = [[Fraction alloc] init]; … // reference an instance variable […]
当切换到AFNetworking 2.0时,AFHTTPClient已被AFHTTPRequestOperationManager / AFHTTPSessionManager取代(如迁移指南中所述)。 我在使用AFHTTPSessionManager时遇到的第一个问题是如何检索失败块中的响应正文? 这是一个例子: [self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { // How to get the status code? } failure:^(NSURLSessionDataTask *task, NSError *error) { // How to get the status code? response? }]; 在成功块中,我想检索响应的状态码。 在失败块中,我想要检索响应的状态码和内容(在这种情况下是描述服务器端错误的JSON)。 NSURLSessionDataTask有一个NSURLResponsetypes的响应属性,它没有statusCode字段。 目前我能够像这样检索statusCode: [self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) { // How to get the […]
有谁知道最好的方法来检查是否已经实现了一个可选的协议方法。 我试过这个: if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] ) 代表在哪里: id<MyProtocol> delegate; 但是,我收到一个错误,说在函数respondsToSelector:没有在协议中find!
我有一个具有元素的NSMUtableArray ,例如: A,B,C,E 我想添加一个对象d到c和e之前。 换句话说,我想插入一个对象到一个有序的数组(该对象也可以是一个自定义的对象) 我想知道:除了用来找位置外,还有其他方法可以实现吗? 最好使用iOS API。 谢谢。
我想知道什么atomically:参数代表在writeToFile:atomically:方法( -[NSArray writeToFile:atomically:]例如)。 通过atomically:通过YES ,但我不知道它是什么意思。
有人能够简单地解释什么是Key-Value-Coding和Key-Value-Observing ? 请不要提供指向Apple开发人员参考文档的链接。 我已经经历过他们。 我期待一个非常简单的解释。
假设我有一个NSURL ? 无论它是否已经有一个空的查询string,如何添加一个或多个参数到NSURL的query ? 即,有没有人知道这个function的实现? – (NSURL *)URLByAppendingQueryString:(NSString *)queryString 所以它满足这个NSURL+AdditionsSpec.h文件: #import "NSURL+Additions.h" #import "Kiwi.h" SPEC_BEGIN(NSURL_AdditionsSpec) describe(@"NSURL+Additions", ^{ __block NSURL *aURL; beforeEach(^{ aURL = [[NSURL alloc] initWithString:@"http://www.example.com"]; aURLWithQuery = [[NSURL alloc] initWithString:@"http://www.example.com?key=value"]; }); afterEach(^{ [aURL release]; [aURLWithQuery release]; }); describe(@"-URLByAppendingQueryString:", ^{ it(@"adds to plain URL", ^{ [[[[aURL URLByAppendingQueryString:@"key=value&key2=value2"] query] should] equal:@"key=value&key2=value2"]; }); it(@"appends to the existing […]
我正在将我的iOS项目迁移到Swift。 我正在按class上课。 当我从Swift调用Objective C方法时,很多Objective Ctypes被转换为Swift对象。 在我的情况下,Objective C NSMutableArray被转换为Swift的Array<AnyObject> 。 现在这里出现我的问题。 在我的Swift类中,我从一个Objective C对象中得到了一个这样的数组。 现在我在Swift世界中,我想将这个数组转换成一个特定的types,而不是AnyObject ,因为我知道这个数组中存在着什么types的对象。 编译器不会让我这样做! 让我简化我的问题,说我想转换为包含string的数组。 这是我试过的: var strings = myObjcObject.getStrings() as [String] 我从编译器得到以下错误: 'String'与'AnyObject'不一样 我不得不同意编译器,因为String确实与AnyObject不相同。 但我不明白为什么这是一个问题。 如果需要,我可以将AnyObject转换为String,对吧? 我也试过: var strings = myObjcObject.getStrings() as? [String] 这似乎是在正确的方向迈出的一步,但getStrings()返回一个NSMutableArray所以我得到以下错误: “NSArray”不是“NSMutableArray”的子types 有什么办法可以做我想在这里做的?
根据UIVIew @property(nonatomic) CGFloat alpha的文档 此属性的值是一个浮点数,范围为0.0到1.0,其中0.0表示完全透明,1.0表示完全不透明。 该值仅影响当前视图,不影响其embedded的子视图。 我有一个容器视图configuration如下: self.myView.backgroundColor = [UIColor blackColor]; self.myView.alpha = 0.5; [self addSubview:self.myView]; 然后添加子视图到'myView' [myView addSubView anotherView]; anotherView.alpha = 1; NSLog(@"anotherView alpha = %f",anotherView.alpha); // prints 1.0000 as expected 但是“ 另一个视图 ”在屏幕上确实有alpha(它并不像预期的那样是不透明的) 这怎么可能做什么?