我试图在我的文本编辑器中加密/解密纯文本文件.加密似乎工作正常,但解密不起作用,文本加密.我确信我已经使用加密它的单词解密了文本 - 有人可以浏览下面的片段并帮助我吗?
谢谢 :)
加密:
NSAlert *alert = [NSAlert alertWithMessageText:@"Encryption"
defaultButton:@"Set"
alternateButton:@"Cancel"
otherButton:nil
informativeTextWithFormat:@"Please enter a password to encrypt your file with:"];
[alert setIcon:[NSImage imageNamed:@"License.png"]];
NSSecureTextField *input = [[NSSecureTextField alloc] initWithFrame:NSMakeRect(0, 0, 300, 24)];
[alert setAccessoryView:input];
NSInteger button = [alert runModal];
if (button == NSAlertDefaultReturn) {
[[NSUserDefaults standardUserDefaults] setObject:[input stringValue] forKey:@"password"];
NSData *data;
[self setString:[textView textStorage]];
NSMutableDictionary *dict = [NSDictionary dictionaryWithObject:NSPlainTextDocumentType
forKey:NSDocumentTypeDocumentAttribute];
[textView breakUndoCoalescing];
data = [[self string] dataFromRange:NSMakeRange(0, [[self string] length])
documentAttributes:dict error:outError];
NSData*encrypt = [data AESEncryptWithPassphrase:[input stringValue]]; …Run Code Online (Sandbox Code Playgroud) 我的iOS应用程序遇到了一个奇怪的问题.当它通过Xcode(Build&Run)运行时,一切运行良好.该应用程序启动,一切按预期工作.
但是,如果我尝试通过点击用户的图标(通过Springboard)打开应用程序,应用程序会立即崩溃,并在下面的崩溃日志中崩溃.它似乎指向某种与图像相关的问题,但我不明白在使用Xcode进行调试时它是如何发生的.
任何人都能解释一下吗?
Date/Time: 2012-06-15 16:13:29.035 +0100
OS Version: iPhone OS 5.1.1 (9B206)
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 dyld 0x2fe76464 strcmp + 0
1 dyld 0x2fe6a6e2 ImageLoaderMachO::parseLoadCmds() + 54
2 dyld 0x2fe72058 ImageLoaderMachOCompressed::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, unsigned int, unsigned int, linkedit_data_command const*, ImageLoader::LinkContext const&) + 296
3 dyld 0x2fe6b23a ImageLoaderMachO::instantiateFromFile(char const*, …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个可行的Cocoa框架,我想重新分发它.但问题是,它不会在Xcode之外运行.我读过一些@executable_path/../Frameworks我没有提到的内容,因为我不知道该放在哪里:/
因此,我使用DYLD_FRAMEWORK_PATH 变量工作在Xcode中运行我的应用程序工作正常,但只在Xcode中 - 如果我尝试自己运行它直接崩溃并说IMAGE NOT FOUND.
我确定@executable_path/../Frameworks缺少什么,但我不知道该把它放在哪里.
有人可以帮帮我吗?:)
谢谢
我有一个iOS应用程序,它使用Filesharing为用户提供几个下载的文件.这很好用,但有一些我不希望用户有权访问的文件.
我可以提供iTunes可以从中获取数据的自定义文件夹,或者我可以做些什么来阻止访问这些文件?
我需要从我的应用程序的资源文件夹中复制一些示例文件,并将它们放在我的应用程序的文档文件夹中.我想出了附加的代码,它编译得很好,但它不起作用.我引用的所有目录都存在.我不太确定我做错了什么,有人能指出我正确的方向吗?
NSFileManager*manager = [NSFileManager defaultManager];
NSString*dirToCopyTo = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSString*path = [[NSBundle mainBundle] resourcePath];
NSString*dirToCopyFrom = [path stringByAppendingPathComponent:@"Samples"];
NSError*error;
NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyFrom error:nil];
for (NSString *file in files)
{
[manager copyItemAtPath:[dirToCopyFrom stringByAppendingPathComponent:file] toPath:dirToCopyTo error:&error];
if (error)
{
NSLog(@"%@",[error localizedDescription]);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我只是按照它应该的方式编辑代码.然而现在又出现了另一个问题:
2010-05-15 13:31:31.787 WriteIt Mobile [4587:207] DAMutableDictionary.h 2010-05-15 13:31:31.795 WriteIt Mobile [4587:207] FileManager错误:操作无法完成.文件已存在
编辑:我通过告诉NSFileManager复制文件的目的地名称来解决问题.
[manager copyItemAtPath:[dirToCopyFrom stringByAppendingPathComponent:file] toPath:[dirToCopyTo stringByAppendingPathComponent:file] error:&error];
Run Code Online (Sandbox Code Playgroud) 我创建了一个NSView名为的子类DAView,它包含了一组有用的方法,以便以后重用.然而,这种方法很有用,drawRect:从不在任何使用过的类中调用DAView,也不在类本身中调用.为什么?
这是DAView看起来像:
DAView
@interface DAView : NSView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
self.backgroundColor = [NSColor clearColor];
// Make layer-backed by default
self.wantsLayer = YES;
// Create a root layer
CALayer *_rootLayer = [CALayer layer];
_rootLayer.shouldRasterize = YES;
_rootLayer.name = DAViewRootLayerDefaultName;
self.layer = _rootLayer;
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect // never called
{
NSLog(@"Draw Rect called");
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我想使用这些DAView's添加/方法,我将面临同样的问题.一切都很好,除了drawRect:,在这种DAView情况下,从来没有被称为:
DATableView …
我正在尝试使用GameKit框架通过蓝牙发送文件.我遇到的问题是我一次只能发送一个NSData对象,但我需要在另一端保存它.如果不知道文件名,这显然是不可能的,但我不知道如何传输它.我试图将它转换为字符串, NSData*data = [NSData dataWithContentsOfFile:urlAddress];但我只能发送一个NSData对象,而不是两个.
有人遇到过这个问题吗?
我正在尝试从iOS中的各种URL读取证书.然而,我的代码运行不正常 - 应该返回我需要的信息的数组总是返回null.
我错过了什么?
- (void)findCertificate:(NSString *)url
{
NSInputStream*input = [[NSInputStream inputStreamWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://store.writeitstudios.com"]]] retain];
[input setDelegate:self];
[input scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[input open];
NSLog(@"Status: %i",[input streamStatus]);
}
- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
{
NSLog(@"handle Event: %i",eventCode);
if (eventCode == NSStreamStatusOpen)
{
NSArray *certificates = (NSArray*)CFReadStreamCopyProperty((CFReadStreamRef)aStream, kCFStreamPropertySSLPeerCertificates);
NSLog(@"Certs: %@",CFReadStreamCopyProperty((CFReadStreamRef)aStream, kCFStreamPropertySSLPeerCertificates));
if ([certificates count] > 0) {
SecCertificateRef certificate = (SecCertificateRef)[certificates objectAtIndex:0];
NSString *description = (NSString*)SecCertificateCopySubjectSummary(certificate);
NSData *data = (NSData *)SecCertificateCopyData(certificate);
NSLog(@"Description: %@",description);
}
}
}
Run Code Online (Sandbox Code Playgroud)
是的,我知道我在泄漏记忆.这只是一个片段.
我如何拦截window.open像Safari Safari那样的Javascript调用?我没有看到任何关于此的列表,但它必须以某种方式可能吗?
有没有人这样做过?
在与一些"minamoto"家伙创建的CoreKeyGen的几个版本打架之后,出现了一个新版本.这个版本特别复杂,似乎使用名为libbassmod.dylib的dylib修改了实际的二进制文件(这是在keygen的Mac OS文件夹中).
有没有人遇到这个并且可以给我如何阻止它的建议?
如果是这样,我怎么能停止keygen?好像图书馆可以看到我的应用程序调用了什么,并以某种方式阻止它们,我不太确定.
iphone ×6
cocoa ×5
objective-c ×5
binary ×1
bluetooth ×1
certificate ×1
copying ×1
debugging ×1
document ×1
dylib ×1
encryption ×1
frameworks ×1
gamekit ×1
itunes ×1
macos ×1
nsdata ×1
uiwebview ×1