小编Jas*_*oco的帖子

在ObjectiveC中,指针是将类实例变量初始化为'nil'还是其他?

即,ObjectiveC的行为与C类似,因为如果你创建一个指针,例如:

NSString* c;
Run Code Online (Sandbox Code Playgroud)

c指向nil,还是指向为其保留的内存区域中的随机值?

换句话说,指针是否已预先初始化,或者我是否需要自己执行此操作?正如我所说,我知道在C/C++中并非如此,但我想知道这里是否有一些ObjC魔法.

objective-c

10
推荐指数
1
解决办法
582
查看次数

测试假存储库有什么意义?

我一直试图在家里开发时更加注重TDD和DDD.

但我不明白的一件事是你为什么要创建一个假的存储库来测试?我还没有真正研究过它,但是测试的想法肯定是为了帮助解耦你的代码(提供更多的灵活性),减少所需的代码并减少错误的数量.

那么有人可以填写我的愚蠢大脑,为什么有些人喜欢测试假存储库?我认为对真实数据库进行测试是创建假数据库的一个更好的选择,因为那时你知道它对你的真实世界数据存储有效.

tdd repository fake-repositories

9
推荐指数
2
解决办法
990
查看次数

如何在Xcode中为iPhone SDK构建自定义控件?

我想构建一个自定义控件,以便在我的项目中重用,该项目由两个链接在一起的UITextField +一个标签组成.

它开始变得越来越重复我的应用程序和代码重复的气味;)

但是,我想知道这里最好的方法是什么.

最好是通过控制器中的代码完成所有操作,还是可以像Xcode中内置的那样进行视觉操作?

iphone xcode objective-c

9
推荐指数
2
解决办法
1万
查看次数

为什么Xcode 3会为每个实际发生的事件显示多个编译器错误或警告

当我构建Xcode时,任何错误或警告都会被复制.因此,在IDE中,我在状态栏中的图标附近获得两倍的数字,并且在编辑器中显示黄色或红色气泡的位置,警告(或错误)行下方有两条警告线(或错误行) ) 发生了.其他人有这个问题,或知道如何解决它?

macos xcode objective-c

8
推荐指数
1
解决办法
1229
查看次数

如何从NSString中获取每一行?

如果我有一个带有文本文件的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行结尾.

macos cocoa objective-c

7
推荐指数
3
解决办法
1万
查看次数

如果我将自动释放的对象桥接到Core Foundation,我必须使用__bridge或__bridge_retained吗?

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来完成.

memory-management ios automatic-ref-counting

7
推荐指数
1
解决办法
4790
查看次数

如何使用 UIKit 计算文本的准确高度?

我用来-[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() 的东西。

cocoa-touch objective-c nsstring ios

5
推荐指数
1
解决办法
1980
查看次数

在switch块中实例化新对象 - 为什么会失败?

为什么

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?

objective-c

4
推荐指数
1
解决办法
1244
查看次数

如何使用Cocoa获取当前时间?

如何使用Objective-C获取Cocoa中的当前小时?

cocoa objective-c

4
推荐指数
2
解决办法
1万
查看次数

将int64转换为NSData

我需要将一个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的地址而不是它的值?

iphone typeconverter int64 nsdata

3
推荐指数
1
解决办法
3357
查看次数