我在目标C中首次亮相,我试图为iOS做一个简单的密码生成器。
在这段代码中,我尝试创建一个带字母和数字的随机字符串。然后我尝试用NSLog
显示这个字符串(看它是否有效)
当我运行程序时,我遇到了这个错误:
我创建了2个文件,有viewcontroller.m
:
我的viewcontroller.h
:
你能帮助我吗?
答案 0 :(得分:4)
某种程度上某种东西在你的项目中被强大地吸收。
start
基本上是您的计划的切入点;它是dyld初始化的一部分,是跳转到main()
的内容。 (尝试在start
上设置一个符号断点,然后运行你的应用程序 - 这是dyld
中的一个小例程,可以找出main
所在的位置并尾调用它,这就是为什么你除非事情变得非常严重,疯狂,错误,否则永远不会在回溯中看到它。
arc4random
是C标准库的一部分。它应该始终可用。
我看到的唯一线索是链接行使用-nostdlib
。这看起来很奇怪。转到“构建设置”并确保已打开标准库链接。如果不是,发生了什么以及其他可能发生了什么变化?
请注意代码中存在许多其他问题。
头文件中的那些非ivar声明会导致问题;当你第一次将该文件导入另一个编译单元(另一个.m文件)时,它们将成为重复的符号。
@interface UIViewController()
不是必需的(你也不应该在系统类上声明方法)。
答案 1 :(得分:-1)
您好请执行以下步骤 1)重启XCode。 2)请检查是否添加了石英代码框架。 3)清洁和建造。
请删除.m文件中 - (NSString *)generer:(int)len 中的分号后的分号(;)。
在之前的应用程序中,我也遇到了同样的问题。 希望这会有所帮助。
答案 2 :(得分:-2)
您在程序arc4random()中使用了c ++代码,这是architechture i386的未定义符号,我不明白这个错误。
要解决这个问题,只需在标题处添加#include <stdlib.h>
即可。这应该可以。