小编m J*_*Jae的帖子

在Xcode中创建"快速帮助"条目

如何在Xcode中为我自己的代码创建快速帮助条目?我只是想把它作为编码支持,就像编写Java时的Eclipse功能一样.在eclipse中,当您将方法悬停在其他位置时,您会在方法上方输入注释.

Xcode等效似乎是"快速帮助".

除了使用Doxygen之外真的没别的办法吗?对于我正在研究的小项目来说,Doxygen似乎有些过分.目前我确实知道我只想彻底填写快速帮助,所以请避免任何提示,"你必须为你的项目创建一个文档".

我真的很感激任何帮助,因为我在这个主题上唯一能找到的就是这个问题.

但正如您所看到的,没有可用的解决方案.

xcode doxygen objective-c code-comments code-documentation

33
推荐指数
4
解决办法
9637
查看次数

列出/扫描可用的WiFis iPhone

我正在寻找一种在iPhone App中展示可用WiFis的方法.到目前为止,我的研究结果如下:

  • 实现(编辑)此类功能的应用程序已从AppStore中删除(意味着您无法通过AppStore部署应用程序,这对我来说很好)
  • Apple隐藏了私有框架中扫描所需的功能,您无法找到关于"如何使用"的任何解释/注释/示例
  • http://code.google.com/p/iphone-wireless似乎最有前途.无论如何,我无法弄清楚如何在我的代码中包含已交付的源,以便它在设备上运行

甚至提到的改编件:http://code.google.com/p/iphone-wireless/issues/detail?id = 26也没有得到我想要的结果.最进步的结果是

dlopen错误:dlopen(/System/Library/SystemConfiguration/Aeropuerto.bundle/Aeropuerto,1):未找到图像失败:__ Apple80211Associate

在设备上启动应用程序后的消息(iPhone 3GS; iOS 3.1.3).

使用了导致错误的源代码:

NSMutableDictionary *networks;
bool scanning;
void *libHandle;
void *airportHandle;
int (*open)(void *);
int (*bind)(void *, NSString *);
int (*close)(void *);
int (*scan)(void *, NSArray **, void *);

networks = [[NSMutableDictionary alloc] init];
// libHandle = dlopen("/System/Library/Frameworks/Preferences.framework/Preferences", RTLD_LAZY);
// libHandle = dlopen("/System/Library/PrivateFrameworks/Apple80211.framework/Preferences", RTLD_LAZY);
libHandle = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager", RTLD_LAZY);

open = dlsym(libHandle, "Apple80211Open");
bind = dlsym(libHandle, "Apple80211BindToInterface");
close = dlsym(libHandle, "Apple80211Close");
scan = dlsym(libHandle, "Apple80211Scan");

open(&airportHandle);
bind(airportHandle, @"en0"); …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c wifi network-scan

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

基于ARC的应用程序中的早期dealloc

我有一个问题,似乎是基于ARC的应用程序中的使用中对象的过早发布.我正在尝试在FTP服务器上创建一个文件夹.代码的相关部分如下; 我先说一下这个问题.

代码的问题是,调试输出中的

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode
Run Code Online (Sandbox Code Playgroud)

方法永远不会被调用.

相反,我只是得到一个_EXC_BAD_ACCESS_错误.调试时我发现了两件事:

  1. 只有在执行以下代码行(createDir方法)时才会出现错误:

    [ftpStream open];
    
    Run Code Online (Sandbox Code Playgroud)

如果没有发送该消息,其余代码实际上没有意义 - 但它也不会崩溃......

  1. 我使用NSZombieEnabled跟踪EXC_BAD_ACCESS:启用僵尸对象后,GDB会生成以下调试器信息:

     *** -[FTPUploads respondsToSelector:]: message sent to deallocated instance 0x9166590
    
    Run Code Online (Sandbox Code Playgroud)

引用的地址0x9166590是我的FTPUploads对象的地址.在委托处理消息之前,它似乎已被释放.

为什么系统会释放一个正在使用的对象?我怎样才能防止它过早解除分配?

码:

FTPUploads.h摘录:

#import <Foundation/Foundation.h>

enum UploadMode {

    UploadModeCreateDir, 
    UploadModeUploadeData
};

@class UploadDatasetVC;

@interface FTPUploads : NSObject<NSStreamDelegate> {

    @private
    NSString *uploadDir;
    NSString *ftpUser;
    NSString *ftpPass;

    NSString *datasetDir;
    NSArray *files;

    /* FTP Upload fields */
    NSInputStream *fileStream;
    NSOutputStream *ftpStream;
    // some more fields...
    enum UploadMode uploadMode;
    UploadDatasetVC *callback;
}

- (id) initWithTimeseriesID: (int) …
Run Code Online (Sandbox Code Playgroud)

objective-c dealloc automatic-ref-counting

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

NSInputStream getBuffer:length:不起作用?

我真的想使用getBuffer:length:NSInputStream 的方法.经过大量的研究,我找不到使用这种方法的有效例子,因为大多数人真的需要read: maxLength:.

所以现在关于周围环境的一些事实:*我正在为iPhone开发应用程序,iOS 3.1.3*我已经通过套接字建立了网络通信*网络连接实际上有效; 所以我没有忘记将一个流添加到runloop或一个有效的委托或类似的东西 - 它已经工作*我只是通过网络发送和接收字符串.*我已经设置了一个有效的委托stream: handleEvent:正确(区分收到的事件并采取适当的行动).我不确定接收代码是否100%正确,因为我有时会收到两次消息.这也可能是我正在与之通信的设备上的错误实现.为了弄清楚它是最后一个指向哪一个,我试图找出当我收到"NSStreamEventHasBytesAvailable"事件时接收缓冲区上有多少字节.由于我不确定我的实现是否正确,但我想知道我收到的实际字节数,我想使用getBuffer: length:并查看之后的长度.奇怪的是:长度永远不会在控制台上打印出来 [((NSInputStream *) stream) getBuffer: &buf length: &numBytes]总是评估为FALSE.无论如何,代码的一部分之后正常工作,在缓冲区中接收消息并正确转发 - 工作正常.问题仍然存在:为什么不起作用getBuffer: length:?感兴趣的代码在这里:

`case NSStreamEventHasBytesAvailable:{

        uint8_t *buf;
        unsigned int numBytes;

        if ([((NSInputStream *) stream) getBuffer: &buf length: &numBytes]) {
            NSLog(@"\t\tBytes in the buffer: %i", &numBytes);
        }

        uint8_t buffer[BUFFER_SIZE];
        int len = [((NSInputStream *) stream) read: buffer 
                                         maxLength: BUFFER_SIZE];
        NSLog(@"\tread: %i bytes", len);

        /*
         if len > 0: len is equal to the …
Run Code Online (Sandbox Code Playgroud)

objective-c nsinputstream

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

多个AVAudioRecorder实例

我正在开发一个记录声音的应用程序.此外,我希望用户能够用自己的声音评论某些情况.我认为配置一个音频会话并创建两个具有不同文件URL的AVAudioRecorder实例就足够了.但这不起作用,第二个录音机确实创建了它的音频文件,但它没有录制任何声音.

有谁知道如何实现两个实际在一台设备上工作的AVAudioRecorder实例?

仅使用一个AVAudioRecorder进行录制,但使用两者都不起作用.

我有一个解决方法,但这是我想要避免的一堆代码......

谢谢!

objective-c audio-recording avaudiorecorder

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

工人线程iOS

我想在iPhone上创建一个后台线程,每10毫秒执行一些代码.但在我再次迷失在并发编程指南和苹果的线程编程指南之前,我想问一下这里是否有人可以帮助我.我想做的事:

  • 创建后台工作线程
  • 每10毫秒触发一次方法的执行.(可能在该线程中使用NSTimer?)
  • 尽可能减少主应用程序线程的负载

在我的理解中NSThread,在子类中继承和编写我自己的main方法应该可以解决问题.这样我不会使用NSTimer更新间隔,但类似于:

[NSThread sleepForTimeInterval: 0.01];
Run Code Online (Sandbox Code Playgroud)

主线程和工作线程之间的排队机制也没有任何意义,因为工作线程应该反复执行相同的操作 - 直到停止.

问题是:如何配置线程使用计时器?我看不出我怎么能附加一个NSTimer工作线程Run Loop?

iphone multithreading objective-c ios

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

可用的RAM iPhone应用程序

如何增加我的应用程序可以使用的可用内存(更具体:RAM的一部分)?我不是指iphone硬盘上的可用空间,而是指RAM.

有没有人知道是否有办法只为我的应用程序使用RAM的整个免费部分?

我必须清楚一点,对不起,如果它太模糊了:

我不得不考虑java堆大小,可以通过在java编程的启动命令中添加一个参数来增加它.我不知道,但目前在iphone上假设类似的事情发生(每个应用程序只有xxMB RAM执行)这个值可能是可调的,所以我可以使用整个剩余的RAM为我的应用程序.这几乎是我需要的特殊应用程序(非app-store-publication;文件大小在50MB到几个100MB之间)

iphone heap ram

0
推荐指数
1
解决办法
1314
查看次数