即,ObjectiveC的行为与C类似,因为如果你创建一个指针,例如:
NSString* c;
Run Code Online (Sandbox Code Playgroud)
c指向nil,还是指向为其保留的内存区域中的随机值?
换句话说,指针是否已预先初始化,或者我是否需要自己执行此操作?正如我所说,我知道在C/C++中并非如此,但我想知道这里是否有一些ObjC魔法.
我一直试图在家里开发时更加注重TDD和DDD.
但我不明白的一件事是你为什么要创建一个假的存储库来测试?我还没有真正研究过它,但是测试的想法肯定是为了帮助解耦你的代码(提供更多的灵活性),减少所需的代码并减少错误的数量.
那么有人可以填写我的愚蠢大脑,为什么有些人喜欢测试假存储库?我认为对真实数据库进行测试是创建假数据库的一个更好的选择,因为那时你知道它对你的真实世界数据存储有效.
我想构建一个自定义控件,以便在我的项目中重用,该项目由两个链接在一起的UITextField +一个标签组成.
它开始变得越来越重复我的应用程序和代码重复的气味;)
但是,我想知道这里最好的方法是什么.
最好是通过控制器中的代码完成所有操作,还是可以像Xcode中内置的那样进行视觉操作?
当我构建Xcode时,任何错误或警告都会被复制.因此,在IDE中,我在状态栏中的图标附近获得两倍的数字,并且在编辑器中显示黄色或红色气泡的位置,警告(或错误)行下方有两条警告线(或错误行) ) 发生了.其他人有这个问题,或知道如何解决它?
如果我有一个带有文本文件的NSString,如何获得一个NSString的NSArray,每个NSString包含一行文件.
在10.5中我这样做了:
NSArray* lines = [str componentsSeparatedByCharactersInSet: [NSCharacterSet newlineCharacterSet]];
Run Code Online (Sandbox Code Playgroud)
但这在10.4中不起作用,我的程序需要在10.4中工作.
同样,它需要使用\ r,\n和\ r \n行结尾.
ARC迁移工具遇到了这个问题:
NSURL *fileURL = [NSURL fileURLWithPath:path];
AudioFileOpenURL((CFURLRef)fileURL, kAudioFileReadPermission, 0, &fileID);
Run Code Online (Sandbox Code Playgroud)
特别是,它不确定它是否应该执行__bridge或__bridge_retained.而我也是.
-fileURLWithPath返回一个自动释放的对象,在这个地方我不是fileURL的所有者.但与此同时,该对象的保留计数至少为+1.
我敢打赌,这只能用__bridge来完成.
我用来-[NSString sizeWithFont]获取文本高度。字符“t”明显高于“m”,但-sizeWithFont为这两个字符串返回相同的高度。这是代码:
UIFont* myFont = [UIFont fontWithName:@"Helvetica" size:1000.0];
NSString* myStr = @"m";
CGSize mySize = [myStr sizeWithFont:myFont];
Run Code Online (Sandbox Code Playgroud)
如图所示,使用“m”时,它会返回{834, 1151}。相反myStr = @"t",它是{278, 1151}. 较小的宽度按预期显示,但高度不显示。
是否有其他函数将文本紧紧包裹?我理想地寻找相当于 Android 的 Paint.getTextBounds() 的东西。
为什么
switch ([document currentTool]) {
case DrawLine:
NSBezierPath * testPath = [[NSBezierPath alloc]init];
//...rest of code that uses testPath....
Run Code Online (Sandbox Code Playgroud)
造成
error:syntax error before "*" token
对于testPath?
我需要将一个long值从int64转换为NSData,以便稍后我可以在其上运行哈希算法.我执行:
int64_t longNumber = 9000000000000000000L;
NSMutableData *buffer = [NSMutableData dataWithBytes:&longNumber length:sizeof(longNumber)];
NSLog(@"%lld", [buffer bytes]);
NSLog(@"%lld", longNumber);
Run Code Online (Sandbox Code Playgroud)
生成的控制台输出如下:
6201314301187184 9000000000000000000
为什么NSData没有正确存储长号的值?如果我在一个循环中运行它,NSData字节漂移,从620开始,然后是621,然后开启.我是通过[缓冲字节]输出longNumber的地址而不是它的值?
objective-c ×7
cocoa ×2
ios ×2
iphone ×2
macos ×2
xcode ×2
cocoa-touch ×1
int64 ×1
nsdata ×1
nsstring ×1
repository ×1
tdd ×1