Score %0 (0 correct0 incorrect20 unanswered)
Q1. 在执行以下代码后,s的值是多少?
NSMutableString *s = [NSMutableString stringWithString: @"123"];
[s appendString: @"456"];
- 123456
- 123
- 123
- 456
- 该代码包含错误。
Q2. 在执行以下语句后,i的值是多少?
NSString *str = nil;
NSInteger i = str.integerValue;
- nil
- 0(严格来说
nil
== 0,但i将具有字面值0
,而不是nil
的void*
值)
- -1
- 该代码会崩溃。
Q3. 在执行此行后,str中有什么值?
NSString str = "test" + " " + "more";
- 该代码包含错误
- test
- nil
- test more
Q4. 以下代码的输出是什么?
NSPredicate *p2 = [NSPredicate predicateWithBlock:^BOOL(NSString* evaluatedObject, NSDictionary<NSString *,id> * _Nullable bindings) {
return evaluatedObject.intValue % 2 == 0;
}];
NSArray *vals = @[@"1", @"2", @"3"];
NSArray *n2 = [vals filteredArrayUsingPredicate:p2];
NSLog(@"%@", n2.firstObject);
- 2
- 1,2,3
- 1,2
- 什么都没有,因为该代码包含错误。
Q5. 属性的默认值包括_?
- atomic/strong
- atomic/weak
- nonatomic/weak
- nonatomic/strong
Q6. NSDictionary和NSMutableDictionary之间的主要区别是什么?
- NSMutableDictionary的值可以更改
- NSMutableDictionary没有初始化器。
- NSDictionary无法复制。
- NSDictionary的值可以更改。
Q7. foo是什么?
-(float)foo;
- 返回类型为float的函数。
- 该代码包含错误。
- float类型的变量声明。
- float类型的属性。
Q8. 从这行代码中可以得出什么信息?
#import "NSString+NameHelper.h"
- NameHelper是NSString的一个类别。
- NameHelper是NSString的子类。
- NSString实现了NameHelper协议。
- NSString有一个辅助类。
Q9. 这段代码有什么问题?
float x = 5.;
- 这段代码没有问题。
- 声明不需要分号。
- x=5是无效的浮点数。
- 变量不能在同一个状态中声明和初始化。
Q10. 这个循环将被执行多少次?
for (int x=0; x<100; x++) {
x = x + 1;
}
Q11. 此代码的示例是什么?
[self addObserver: self forKeyPath: @"val" options:0 context: nil];
- 键值观察(Key-Value Observing)
- 类值观察(Class Value Observing)
- 键数据观察(Key-Data Observing)
- 键路径观察(KeyPath Observing)
Q12. ARC是什么的缩写?
- 自动引用计数(Automatic Reference Counting)
- 自动保留检查(Automatic Retain Checking)
- 异步保留循环(Async Retain Cycles)
- 自动释放代码(Automatic Release Code)
Q13. 对于这段代码,会打印出什么?
int val = 0;
val = 1.5;
printf("%d", val);
Q14. 最能描述Objective-C中类继承的是什么?
- 单继承但可以实现多个协议(single inheritance but multiple protocol implementation)
- Objective-C不支持继承
- 双类继承(dual class inheritance)
- 无限类继承和协议遵循(unlimited class inheritance and protocol adherence)
Q15. 在执行此代码后,此NSDictionary有多少个键?
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys: @"b", @"e", @"a", @"r", nil];
Q16. 这段代码有什么错误?
NSMutableDictionary *dict1 = [NSMutableDictionary dictionaryWithCapacity:5];
[dict1 setValue:@"key" forKey:@"value"];
- 键和值的项被混淆了
- 没有任何问题
- 不能设置字典的容量
- NSMutableDictionary没有:setValue:forKey函数。
Q17. 从这段代码中打印出什么?
NSData *data = [@"print" dataUsingEncoding:NSASCIIStringEncoding];
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]);
- print
- 该代码无效
- 这段代码不会打印任何内容。
- nil
Q18. 这个函数有什么不同?
+(void)doSomething;
- 它是静态的(static)
- 它是抽象的(abstract)。
- 它是内联的(inline)。
- 该代码包含错误。
Q20. 这段代码有什么问题?
@interface MyClass :
NSObject
@property (strong, nonatomic, readonly) NSString *name;
@end
- 这段代码没有问题。
- 没有只读指示符。
- MyClass没有实现NSObject。
- 属性应该在实现中声明。