小编Man*_*lio的帖子

以编程方式访问iOS词典

我正在寻找一种以编程方式访问iOS词典的方法.我需要的是从自定义应用程序内检索特定语言的单词列表.
可能吗?是否有任何API提供此(或类似)功能?
我检查了Apple文档,但没有找到任何有用的东西......有人能指出我正确的方向吗?

dictionary objective-c ios

28
推荐指数
3
解决办法
2万
查看次数

==用于指针比较

我引用了Kernighan和Ritchie的"C编程语言":

任何指针都可以有意义地与零相等或不等式进行比较.但是对于算术或与不指向同一数组成员的指针进行比较的行为是未定义的.(有一个例外:超过数组末尾的第一个元素的地址可用于指针算法.)

这是否意味着我不能依赖于==检查不同指针的相等性?这种比较会导致错误结果的情况是什么?

c comparison pointers equality

28
推荐指数
3
解决办法
9978
查看次数

深度优先搜索的完整性

我引用人工智能:现代方法:

深度优先搜索的属性很大程度上取决于是使用图搜索还是树搜索版本.避免重复状态和冗余路径的图搜索版本在有限状态空间中完成,因为它最终会扩展每个节点.另一方面,树搜索版本并不完整[...].可以在没有额外内存成本的情况下修改深度优先树搜索,以便它检查新状态与从根到当前节点的路径上的状态; 这避免了有限状态空间中的无限循环,但不能避免冗余路径的扩散.

我不明白图搜索是如何完成的,树搜索不是,树是一个特定的图.

此外,我没有明确区分"无限循环"和"冗余路径"......

愿有人向我解释一下吗?

PS.对于有这本书的人来说,这是第86页(第3版).

tree artificial-intelligence graph-theory graph-traversal search-tree

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

以编程方式设置NSIndexPath

我的问题是:如何以编程方式设置NSIndexPath.

例如我添加方法:

- (void)setDefaultValue{
 tempIndexPath = [NSIndexPath indexPathForRow:0 inSection:1];
}
Run Code Online (Sandbox Code Playgroud)

在tableView委托-cellForRowAtIndexPath我想比较两个indexPath

if([indexPath isEqual:tempIndexPath])...

但在这种情况下我的tempIndexPath = null(我认为 - 因为这是autorelease对象)

在这种情况下如何设置NSIndexPath?

谢谢,全部!

objective-c nsindexpath ios

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

NSDictionary没有正确存储CGRect?

我似乎有存储问题CGRectNSDictionary.我正在使用的代码:

dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Crocodile", [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], nil];
Run Code Online (Sandbox Code Playgroud)

从我读过的内容来看,我应该将其包装CGRect成一个NSValue并将其存储到字典中.

但是,当我尝试使用NSLog它时,该值将返回{{0,0},{0,0}}

NSLog(@"Crocodile value is: %@", NSStringFromCGRect([[dictionary objectForKey:@"Crocodile"] CGRectValue]));
Run Code Online (Sandbox Code Playgroud)

我检查了我的字典计数,似乎插入了项目.我不确定这在哪里失败了.我还试图通过创建一个CGRectvar,然后是一个NSValuevar 来手动分解它,并将其粘贴到具有相同结果的字典中.

任何帮助赞赏.谢谢

谢谢.

iphone objective-c ipad ios

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

逻辑运算符优先于NAND,NOR,XNOR

我在网上搜索过,但我找不到解决这个问题的办法.

什么是运营商的逻辑优先NAND,NORXNOR

我的意思是,以表达为例

A AND B NAND C
Run Code Online (Sandbox Code Playgroud)

应该首先评估哪个运营商?
显然,NAND可以翻译为NOT-AND(作为NORNOT-ORXNORNOT-XOR),但

(A AND B) NAND C != A AND (B NAND C) = A AND NOT(B AND C)
Run Code Online (Sandbox Code Playgroud)

根据我的研究,这样的表达式没有明确的优先级,所以我认为最简单的解决方案是根据运算符在表达式中出现的顺序来评估运算符,但我可能错了.

有什么建议?

logic operators operator-precedence

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

以编程方式使下载停靠图标弹跳

如何使dock下载图标以编程方式弹出?
请注意,我不希望我的应用图标反弹,而只是"下载"图标.

特别是,我正在从我的应用程序下载文件到Downloads文件夹.没问题,但是我希望下载完成时下载图标会反弹(就像Safari完成下载时一样).

macos cocoa dock objective-c bounce

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

MacOSX下与libpng的链接器错误

我正在研究MacOSX 10.7.2和Xcode 4.2.1.我libpng使用端口安装,我试图在我的应用程序中加载PNG图像,但我得到链接器错误:

Undefined symbols for architecture x86_64:
  "_png_create_read_struct", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_create_info_struct", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_destroy_read_struct", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_set_longjmp_fn", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_init_io", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_set_sig_bytes", referenced from:
      loadPngImage(char*, int&, int&, bool&, unsigned char**) in test.o
  "_png_read_png", referenced from:
      loadPngImage(char*, …
Run Code Online (Sandbox Code Playgroud)

macos xcode linker-errors libpng

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

在C中创建一个DLL并从C++项目链接它

根据标题,我正在尝试使用C构建DLL并从C++项目链接它.我在互联网上阅读并阅读了不同的教程,但每次都有遗漏的东西,我不明白什么.

这是我一步一步做的:

我创建了一个新的Win32项目,命名testlib,然后,从向导,我选择"DLL"和"空项目".

添加了标题:

//testlib.h

#include <stdio.h>

__declspec(dllexport) void hello();
Run Code Online (Sandbox Code Playgroud)

添加了一个来源; 因为我希望它是一个C源我读过,我应该简单地重命名.c中的.cpp文件,所以

//testlib.c

#include "testlib.h"

void hello() {
    printf("DLL hello() called\n");
}
Run Code Online (Sandbox Code Playgroud)

构建成功.

现在我想在另一个项目中使用我有用的dll.

然后:新项目(testlibUse).这次我选择了"空项目".
无需添加标头,只需创建一个cpp源

//main.cpp
#include <testlib.h>

int main() {
    hello();
}
Run Code Online (Sandbox Code Playgroud)

然后:

  • 我将路径添加到testlib.dllProperties-> VC++目录 - >可执行目录中的文件夹

  • 我添加了文件夹的路径,其中testlib.h包含Properties-> VC++目录 - >包含目录

  • testlib.lib在Properties-> Linker-> Input-> Additional dependencies中添加了(包含的扩展名)的路径

我尝试构建但是我遇到了一个链接器错误:

LINK:C:\ path\testlibUse\Debug\testlibUse.exe未找到或未由最后一个增量链接构建; 执行完整链接
main.obj:错误LNK2019:未解析的外部符号"void __cdecl hello(void)"(?hello @@ YAXXZ)在函数_main中引用
C:\ path\testlibUse\Debug\testlibUse.exe:致命错误LNK1120:1未解决的外部

如果我回去testlib,重命名回testlib.ctestlib.cpp重建的dll,那么我能够建立testlibUse,但我在运行时得到一个"DLL未找到"错误.

我还尝试在"Release"中更改两个项目的配置(更改所需的路径),但没有任何改变.

对于长篇文章感到抱歉,但我认为有必要写下我的确切做法. …

c c++ dll linker

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

卸载应用程序时,我的UIPasteboard上的持久性仍然有效.为什么?

我使用UIPasteboard该类来使用具有多个应用程序的数据.该文档说,卸载创建者应用程序时会删除持久性.我做两个应用程序,一个用于复制,另一个用于过去:

创作者应用:

-(IBAction)paste:(id)sender{
    UIPasteboard* pb = [UIPasteboard pasteboardWithName:@"mytext" create:YES];
    tv_pasting.text = pb.string;

}
Run Code Online (Sandbox Code Playgroud)

读者应用:

-(IBAction)copy:(id)sender{

    UIPasteboard* pb = [UIPasteboard pasteboardWithName:@"mytext" create:YES];
    pb.persistent = YES;
    pb.string = tf_copy.text;
}
Run Code Online (Sandbox Code Playgroud)

我在我的第一个应用程序中进行了文本复制,我粘贴在我的第二个应用程序上,文本被复制,一切都很好.之后,我卸载了我的两个应用程序并重新安装了阅读器应用程序 我粘贴...并且旧版本仍然可用.为什么?

objective-c uipasteboard ios

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