`
zcw_java
  • 浏览: 296827 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iPhone面试题解答,真机调试

 
阅读更多
在网上看到很多,但是都没人写答案!我自己做了做,也许不对,请各方友人指正。


1.objective-c中的数字对象都有哪些,简述它们与基本数据类型的区别是什么?
所谓数字对象个人理解应该是类似java中Integer,Long,Float等等,在OC中NSNumber是数字对象,可以进行拆装箱操作!
//将int转为NSNumber
NSNumber *num = [NSNumber numberWithInt:123];
//得到一个int
int testNum = [num intValue];


2.用NSLog打印一个浮点数,保留两位小数,结果四舍五入
注意,其实NSInteger,CGFloat这些都是Fundation框架下的名称,跟咱们用的int和float一样。
NSLog(@"保留两位小数:%.2f",4.8356);

3.截取字符串”20|http://zcw-java.iteye.com“ 中 ‘|’字符前面及后面的数据,分别输出它们
NSRange range = [str rangeOfString:@"|"];//获取范围
int location = range.location;//获取位置
NSString *str1 = [str subStringToIndex:location];//截取到第几位
NSString *str2 = [str subStringFromIndex:location+1];//从第几位开始截取

如果字符串是|20|3020|20|||40|这样的,那么就需要另一种方式了
首先按照|符号进行分割
NSArray *array = [str componentsSeparatedByString:@"|"];
遍历后判断非空

4.objective-c中的词典对象、可变词典对象是哪个,初始化一个含有两个键值对的可变词典对象,并动态的添加和删除一条记录,输出第一条记录
词典NSDictionary,可变词典NSMutableDictionary,
//初始化一个可变词典,带有2个键值对
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",nil];
//添加
[dic setObject:@"value3" forKey:@"key3"];
//删除
[dic removeObjectForKey:@"key3"];
//获取(按key获取)
[dic objectForKey:@"key1"];

5.获取项目根路径,并在其下创建一个名称为userData的目录。
// 获取根路径
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:];
// 创建文件系统管理器
NSFileManager *fileManager = [[NSFileManager alloc] init];
// 判断userData目录是否存在
if(![fileManager fileExistsAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]]) {
// 不存在,创建一个userData目录
[fileManager createDirectoryAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]withIntermediateDirectories:false attributes:nil error:nil];
}
如果你在mac上测试一定是在你得文稿下边,但装到手机上就不一样了,每一个iPhone应用都会有一个自己独立得documents,所以不会冲突!

6.在一个对象的方法里面:self.name = “object”;和name =”object”有什么不同吗?
这个比较重要,self.name="object"隐式调用了set方法,所以这里如果你的set是自己写的,那么一定不要在set里self.name=name;这样的语法会造成死循环,还会使retainCount(引用计数+1)
name=“object”,直接赋值!引用计数不变

7.定义属性时,什么情况使用copy,assign,和retain
assign用于简单数据类型,如NSInteger,double,bool。
retain 和copy用户对象,copy用于当 a指向一个对象,b也想指向同样的对象的时候,如果用assign,a如果释放,再调用b会crash,如果用copy 的方式,a和b各自有自己的内存,就可以解决这个问题。retain 会使计数器加一,也可以解决assign的问题。另外:tomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。

8.ViewController 的viewDidLoad,viewDidUnload,dealloc,viewWillAppear,viewWillDisappear
1、viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用
例如动态在view添加一个按钮等
2、viewDidUnload当系统内存吃紧的时候会调用该方法,在该方法中将所有IBOutlet(无论是property还是实例变量)置为nil(系统release view时已经将其release掉了)在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)
这里需要说明Unload在3.0之后被广泛使用,现在已经很少用didReceiveMemoryWarning,
3、dealloc方法,viewDidUnload和dealloc方法没有关联,dealloc还是继续做它该做的事情
流程应该是这样:

(loadView/nib文件)来加载view到内存 -->viewDidLoad函数进一步初始化这些view -->内存不足时,调用viewDidUnload函数释放views -->当需要使用view时有回到第一步
如此循环
4、viewWillAppear方法,视图即将过渡到屏幕上时调用,(一般在返回需要刷新页面时,我都选择使用代理,所以很少用到)
5、viewWillDisappear方法,这个A->B之后,A在B之后的操作
9.写一个发送同步http请求,并获得返回结果的方法
10.怎样启动一个新线程,子线程怎样刷新主UI
[/color]
[color=red]

[/color]
[color=red]

分享到:
评论
1 楼 mountainol 2014-02-25  
[img][img][img][img][url][flash=200,200][img][img][list]
[*]
引用
[list] [*][*][size=small][/size] [*][/list]

[/list][/img][/img][/flash][/url][/img][/img][/img][/img]                                                                                  

相关推荐

    iOS 13.5 真机调试包

    iOS 13.5 真机调试包

    XCode iOS 16.0真机调试包

    这是16的真机调试包,文件直接解压放到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

    xcode16.1真机调试包

    xcode 16.1真机调试包

    IOS16.3真机调试包

    Xcode IOS 16.3真机调试包

    傻瓜教程:把Iphone程序连接真机调试

    傻瓜教程:把Iphone程序连接真机调试,很好的东西

    iOS16.5 真机调试包

    iOS16.5 真机调试包, 路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 使用方法: 1、下载资源,放入上述路径中; 2、重启Xcode即可使用。

    iOS12 真机调试包

    iOS12真机调试包,放在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport下即可

    iPhone 13.1.rar 真机调试包

    解压后复制到 Applications\Xcode.app\Contents\Developer\Platforms\iPhoneOS.platform\DeviceSupport\

    iPhone真机调试文档

    iPhone真机调试详细步骤,让用户了解如何完成iOS的真机调试过程

    ios12.2真机调试包

    ios12.2真机调试包,请自行获取哦,ios12.2真机调试包

    ios 13.0真机调试包.zip

    iOS 13.0的真机调试文件,放到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 目录下重启XCode即可。

    IOS真机调试发布与发布

    IOS真机调试与发布步骤说明,里面有详细的图文说明,虽然老套但原理不变,主要是苹果验证Mac、iPhone、app这三者就OK

    ios13.1 xcode真机调试包

    Command⌘+Shift⇧+G 输入: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 把文件解压到这个文件夹下,重新启动Xcode,连上真机运行,Xcode会开始下载调试组件(2-3G)...

    iOS16.4真机调试包

    iOS15.5 真机调试包, 路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 使用方法: 1、下载资源,放入上述路径中; 2、重启Xcode即可使用。

    ios13.3真机调试包

    iOS Xcode 13.3真机调试包 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

    Xcode 15.0真机调试包.zip

    iOS 15.0的真机调试文件,放到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 目录下重启XCode即可。

    iOS13.2真机调试包

    iOS13.2真机调试包,解压放在 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 目录下.

    ios12真机调试包

    ios 真机调试包 放到:xcode-content-Developer-platforms-iPhoneOS.platform-DeviceSupport目录下

    iphone ipad 真机调试

    iphone ipad 越狱后 真机调试

Global site tag (gtag.js) - Google Analytics