这里收录了iOS开发中能遇到的各种小问题。
[__NSArrayI addObject] unrecognized
当你运行程序时出现以下错误信息:
NSMutableArray addObject: -[__NSArrayI addObject:]: unrecognized selector sent to instance
说明你在向一个immutable数组添加对象。
如果直接向一个NSArray类型的数组添加对象,编译期间就会报错,并不会等到运行时。所以这种报错通常是源于,你声明了一个NSMutableArray类型的数组,然后用一个immutable数组给它赋值。
比如
NSMutableArray *views = [self.subviews copy];
你该这样:
NSMutableArray *views = [self.subviews mutableCopy];
为什么edit_menu不显示中文
这是因为项目没有进行国际化,默认语言是英文。
解决方法很简单:
- 在Xcode界面左侧的Project Navigator面板选择你的项目;
- 在Project Editor面板的PROJECT下,再次选择你的项目;
- 视线稍微向右看,点击Info -> 展开Localizations -> 点击”+” -> 选择语言Chinese(Simplified);
app会根据设备的语言环境,自动切换语言。运行在中文环境下,Edit Menu将显示为中文。
‘Xcode process launch failed: Security’
通过Xcode将app运行到iPhone时,Xcode出现一个提示框,内容如下:
Could not launch "your app"
process launch failed: Security
app不能在iPhone中运行起来。
解决这个问题,你需要在iPhone中进入 Setttings->General->DeviceManagement,点击你的app,在弹出框中选择trust。
在iOS 9以下,你可以直接在手机桌面点击app,将有一个弹出框跳出,提示是否想要运行这个程序,选择确定然后重新编译运行程序。
Xcode上传Archive时发生“Cannot verify client. (3000)”错误
冷静。
请 重新启动Xcode -> Clean -> Build -> Archive.
OK!
提示:如果你添加了新的图片资源,最好能先commit一下你的最近一次更改。因为我使用Xcode 7,发现在提交代码前clean project,最近添加的图片资源会消失。
iTunes connect找不到新上传的build
通过Xcode上传了新版本,但iTunes connect的Build选择框看不到该版本?
当你通过Xcode上传了版本后,在iTunes connect->MyApp->选中你的App->Activity可以看到你刚才上传的版本。并显示状态为 “Processing”。此时已经证明你成功上传版本到iTunes connect了。

但在“processing”状态下的“Build”,是不能被选用的。你需要等待,当“processing”状态过后,你就可以选用此“Build”。
我上传的一个50Mb的app,需要等待半个小时左右。
在 StoryBoard 中移除 Static TableView 的个别 Cell 的分隔线
通过将分隔线的 left inset 设置为超出屏幕宽度的值。
在 Storyboard 中选择 Cell, Attributes inspector -> Separator -> Custom Insets:
Left 填写 2000。(数字大到足以超出屏幕即可)
去除 UITableView 多余的分隔线
当 cell 的数量不足以填满整个屏幕时, tableview 会在底部显示出许多分割线。
如何去除多余的分隔线? 为 tableview 添加 footerView 即可(代码和 UIStoryboard 都可以添加)。
|
|