小编Bar*_*vel的帖子

fopen()返回一个NULL指针,但该文件肯定存在

我的代码如下:

FILE *txt_file = fopen("data.txt", "r");
if (txt_file == NULL) {
    perror("Can't open file");
} 
Run Code Online (Sandbox Code Playgroud)

返回的错误消息是:

无法打开文件:没有这样的文件或目录

文件"的data.txt"肯定存在于工作目录(它存在于包含我的.c和.h文件的目录),所以为什么fopen()函数返回一个空指针?

c null fopen pointers visual-studio-2008

18
推荐指数
3
解决办法
5万
查看次数

如何在NSArray上执行二进制搜索?

在(已经)排序上进行二进制搜索的最简单方法是什么NSArray

到目前为止我发现的一些潜在方法包括:

  1. 使用CFArrayBSearchValues(这里提到) - 这会起作用NSArray吗?
  2. 该方法indexOfObject:inSortedRange:options:usingComparator:NSArray假定数组进行排序,并采取一种opts类型的PARAM NSBinarySearchingOptions-这意味着它执行二进制搜索?该文档只是说:

    返回对象的指定范围内的索引与使用给定NSComparator块的数组中的元素进行比较.

  3. 编写我自己的二进制搜索方法(类似于).

我应该补充一点,我正在为iOS 4.3+编程

提前致谢.

algorithm objective-c binary-search nsarray ios

16
推荐指数
2
解决办法
9857
查看次数

NSOperationQueue串行FIFO队列

是否可以通过将NSoperationQueue对象设置maxConcurrentOperationCount为1 来将对象用作串行FIFO队列?

我注意到文档声明......

对于最大并发操作数设置为1的队列,这相当于一个串行队列.但是,您永远不应该依赖于操作对象的串行执行.

这是否意味着无法保证FIFO执行?

objective-c fifo nsoperationqueue ios serial-processing

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

是否可以在Visio 2007中显示方法/操作返回和对象数组(而不仅仅是单个对象)?

我特别提到了生成静态结构(类图).我注意到您可以将返回类型设置为特定对象,但似乎无法选择返回对象集合.

collections methods diagram visio class

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

有没有办法在Visio 2007中表示枚举类?

我正在设计一个类图(静态结构),并希望包含一些枚举类.但是,我似乎找不到合适的方式来表示这一点.有任何想法吗?

diagram enums uml visio class

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

CGRectMake替代方案

我已经看到了使用这个替代方法CGRectMake()来初始化CGRect变量:

CGRect frame =(CGRect){0,0,10,10};

我的问题是,CGRect frame = (CGRect){0,0,10,10};工作怎么样?幕后发生了什么?它看起来像一个c风格的数组正在初始化({x,y,w,h})然后被转换为CGRect结构 - 这是正确的吗?如果是这样,如何将ac样式数组转换为结构?

NB我不是在问上面的替代方案是否合适CGRectMake(),我只是想了解它为什么/如何工作.

c struct objective-c cgrect cgrectmake

6
推荐指数
1
解决办法
2495
查看次数

检测 UIScrollView 中的突然滚动停止

我想知道如何使用 来UIScrollViewDelegate检测滚动视图何时突然停止移动,因为用户在快速平移启动动量后触摸并按住了屏幕。

scrollViewDidEndDecelerating:仅当用户抬起手指时,该方法才会在上述情况下触发。但是,如果用户在滚动视图动量期间点击并按住,则此方法不会触发(直到他们抬起手指)。当用户触摸时滚动视图停止时,是否有办法拦截此行为?

uiscrollview uiscrollviewdelegate ios

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

变量定义为`Class <SomeProtocol> myClass`是什么意思?

我习惯于看到类似的东西,id<NSCopying> myVar或者MyObject<NSCopying> myVar我们在说明有问题的变量可以很高兴地拥有NSCopying调用它的方法,而编译器不会摇摆不定.

但是我最近发现了一些定义了这样一个变量的代码:

Class<NSCopying> myClass;
Run Code Online (Sandbox Code Playgroud)

我想知道这实际意味着什么,因为它似乎与前两个例子略有不同.似乎我们说变量myClass可以愉快地接受来自的方法调用NSCopying- 但是具有能够接受这些实例变量方法的类类型似乎没有多大意义.

在我看来,类型的变量在技术上是对象本身,这可能让我或编译器(可能是我!)感到困惑.

所以我猜我在问:

  1. Class<NSCopying> myClass;实际上是什么意思
  2. 怎么会Class<NSCopying> myClass;有所不同id<NSCopying> myVar
  3. 哪里可以Class<NSCopying> myClass;有意义地使用?

笔记:

  • 我只是用它NSCopying作为一个例子,并不是我用例的组成部分
  • 无论我指的是什么,Class我指的是Class用于声明类型变量的Obj-C关键字Class.我不是将它用作任何类类型的通用术语.

class objective-c variable-declaration objective-c-protocol

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

App B关闭时关闭App A:Mac OS X 10.7.3

假设我有两个应用程序在运行; 应用程序A和应用程序B.当应用程序A关闭时,让应用程序B自动关闭的最简单方法(或者确实存在)是什么?请注意,这些应用程序都不是由我开发的,因此我无法控制其内部行为.

我愿意接受任何建议,包括那些需要使用Applescript,Automator,终端命令和BASH脚本的建议.我甚至会考虑开发一个轻量级的Mac OS X应用程序来实现这一目标.

macos terminal applescript

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

Objective-C是否使用字符串池?

我知道JavaC#在处理字符串文字时都使用字符串池来节省内存.

Objective-C是否使用任何此类机制?如果没有,为什么不呢?

memory string pool objective-c string-literals

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

Kiwi iOS上下文块的奇怪排序

我有一个看起来像这样的Kiwi spec文件:

#import "Kiwi.h"
#import "MyCollection.h"

SPEC_BEGIN(CollectionSpec)

describe(@"Collection starting with no objects", ^{
    MyCollection *collection = [MyCollection new];

    context(@"then adding 1 object", ^{
        MyObject *object = [MyObject new];
        [collection addObject:object];
        it(@"has 1 object", ^{
            [collection shouldNotBeNil];
            [collection.objects shouldNotBeNil];
            [[theValue(collection.objects.count) should] equal:theValue(1)]; //failing test
        });

        context(@"then removing 1 object", ^{
            [collection removeObject:object];
            it(@"has 0 objects", ^{
                [[theValue(collection.objects.count) should] equal:theValue(0)]; //passing test
            });
        });
    });
});

SPEC_END
Run Code Online (Sandbox Code Playgroud)

运行规范会导致此代码行出现一次失败 [[theValue(collection.objects.count) should] equal:theValue(1)];

这是奇怪的部分 - 如果我context(@"then removing 1 object", ^{...})从规范中删除整个块,上述测试通过.

这让我相信这[collection …

bdd objective-c ios objective-c-blocks kiwi

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

为什么C代码可以作为Win32构建工作但是作为x64构建失败?

我在Windows 7 - 64位,使用VS2010.下面的代码在Win32中构建没有问题并产生预期的结果(两个矩阵为8乘8,所有元素的值为1,第三个8乘8矩阵显示内存地址).

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int main(void) {
    int rows, cols, i, x, y;
    int **array_of_pointers, *arr2d;
    rows = 8;
    cols = 8;
    arr2d = (int *) malloc(rows * cols * sizeof(int));
    for(i = 0; i < rows*cols; i++) {
        *(arr2d + i) = 1;
    }

    for(y = 0; y < cols; y++) {
        printf("\n");
        for(x = 0; x < rows; x++) {
            printf("%d ",*(arr2d + y * cols + x));
        }
    }

    array_of_pointers = (int **) malloc(rows …
Run Code Online (Sandbox Code Playgroud)

c malloc heap-memory visual-studio-2010 dynamic-memory-allocation

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