小编Sab*_*bin的帖子

在多行上分解长格式化的NSString

给出以下Objective-C代码行:

[NSString stringWithFormat:@"\n Elapsed Time  \n Battery Level:  \n Torque:  \n Energy Used  \n Energy Regenerated:\n Cadence: \n Battery Temp: \n Motor Temp: \n Incline: \n Speed MPH: \n Speed KPH:\n Avg Speed MPH: \n Avg Speed KPH:\n Distance Miles:\n Distance Km: \n Time Date Stamp:\n"];
Run Code Online (Sandbox Code Playgroud)

在Xcode或任何代码编辑器中,是否可以避免使用非常长的字符串,必须通过在编辑器中滚动它来读取?

有没有办法把它分成多行?我发现如果我尝试这样做,代码将无法编译,因为编译器到达行的末尾并且没有看到"字符串的右引号().

有没有人知道这方面的方法?

iphone cocoa objective-c nsstring

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

如何在Xcode 4中更改Localizable.strings文件的文本编码?

我正在学习如何在我的项目中本地化字符串,我正在使用Xcode 4.

我已经生成了基本的Localizable.strings文件,我想导入这个文件,将其编码从utf-16更改为Unicode utf-16,以便文件中的文本在xCode中可读.如果我策略导入这个文件,当我在xcode中选择它时,文本显示为乱码.

在Xcode 3中,当您将Localizable.strings拖动到项目中时,出现的对话框为您提供了更改文本编码的选项,但在Xcode 4中并非如此.

有没有人知道这方面的方法?

iphone xcode ipad ios

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

iOS 7中的UICollectionView奇怪崩溃

我在使用ios 7的UICollectionView中遇到了一个奇怪的崩溃,这种情况在滚动非常快时往往会发生.此处有关Apple Developer Forms的类似问题:https://devforums.apple.com/message/901009#901009

我想知道是否有人经历过这个并找到了修复/解决方法?

我正在使用配置了流布局的基本UICollection视图.它是通过网络从json数据填充的.数据会定期更改.当它reloadData被调用时,该方法被调用.我已经检查过以确保在主线程上总是调用reload方法,因为我担心我的一个网络回调是在后台线程上回调.绝对不是这样的.

打开NSZmobies时,崩溃发生时会收到以下日志消息:

*** -[NSIndexPath section]: message sent to deallocated instance 0x218b74c0
Run Code Online (Sandbox Code Playgroud)

我还使用Zombies跟踪模板运行我的应用程序附加到仪器,并能够获得以下堆栈跟踪详细说明导致崩溃的调用序列.

请注意, 所有调用都是iOS框架级调用,而不是我的应用程序调用.

   0 libsystem_malloc.dylib malloc_zone_calloc
   1 libsystem_malloc.dylib calloc
   2 libobjc.A.dylib class_createInstance
   3 libobjc.A.dylib +[NSObject allocWithZone:]
   4 Foundation +[NSIndexPath indexPathWithIndexes:length:]
   5 UIKit +[NSIndexPath(UITableView) indexPathForRow:inSection:]
   6 UIKit -[UICollectionViewFlowLayout _layoutAttributesForItemsInRect:]
   7 UIKit -[UICollectionViewFlowLayout layoutAttributesForElementsInRect:]
   8 UIKit __45-[UICollectionViewData validateLayoutInRect:]_block_invoke
   9 UIKit -[UICollectionViewData validateLayoutInRect:]
  10 UIKit -[UICollectionView layoutSubviews]
  11 UIKit -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
  12 QuartzCore -[CALayer layoutSublayers]
  13 QuartzCore CA::Layer::layout_if_needed(CA::Transaction*)
  14 QuartzCore CA::Layer::layout_and_display_if_needed(CA::Transaction*) …
Run Code Online (Sandbox Code Playgroud)

crash objective-c uikit ios uicollectionview

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

难以理解C指针语法

鉴于以下C定义:

#define SYNC_BYTE_1                         0x5A
#define SYNC_BYTE_2                         0xA5
Run Code Online (Sandbox Code Playgroud)

和指针声明:

UINT8   *pCommandData;
pCommandData = GetCommandBufferPointer( LINGO_GENERAL, stringLength + 3 );
Run Code Online (Sandbox Code Playgroud)

以下两行代码到底是做什么的?

*pCommandData++ = SYNC_BYTE_1;
*pCommandData++ = SYNC_BYTE_2;
Run Code Online (Sandbox Code Playgroud)

我特别不了解*++在这种情况下的使用.如果指针的地址递增,不应该*&?替换?

c pointers

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

将QuartzCore框架导入Xcode项目时出现问题

我正在使用Xcode 4.

我试图将QuartzCore框架导入我的Xcode项目,但是我得到以下编译错误:

/Users/sabobin/Desktop/PlayingCard/PlayingCard/PlayingCardViewController.m:10:26:错误:Quartz/Quartz.h:没有这样的文件或目录

file://localhost/Users/sabobin/Desktop/PlayingCard/PlayingCard/PlayingCardViewController.m:错误:词法或预处理器问题:找不到'Quartz/Quartz.h'文件

我导航到项目目标,并选择Build Phases选项卡,然后将QuartzCore.framework添加到Link Binary With Libraries部分.

然后我在视图控制器实现文件中使用了以下import语句:

#import <Quartz/Quartz.h>
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法?

提前致谢.

iphone xcode ipad ios

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

核心音频 - Interapp音频 - 如何从Host App内的Node应用程序中检索输出音频数据包?

我正在编写一个HOST应用程序,它使用Core Audio的新iOS 7 Inter App Audio技术从单个NODE"生成器"应用程序中提取音频并将其路由到我的host应用程序中.我正在使用音频组件服务和音频单元组件服务C框架来实现这一目标.

我想要实现的是建立与可以生成声音的外部节点应用程序的连接.我希望将声音路由到我的主机应用程序,并让我的主机应用程序能够直接访问音频数据包数据作为原始音频数据流.

我在我的HOST应用程序中编写了代码,按顺序执行以下操作:

  1. 使用正确的会话类别设置和激活音频会话.
  2. 刷新一个类型为(kAudioUnitType_RemoteGeneratorkAudioUnitType_RemoteInstrument我对效果应用程序不感兴趣)的interpp音频兼容应用程序列表.
  3. 从该列表中拉出最后一个对象并尝试使用建立连接 AudioComponentInstanceNew()
  4. 设置我的主机应用程序需要音频格式的音频流基本描述.
  5. 在输出范围(总线)上设置音频单元属性和回调以及音频单元渲染回调.
  6. 初始化音频单元.

到目前为止,我已经能够成功建立连接,但我的问题是我的渲染回调根本没有被调用.我无法理解的是如何从节点应用程序中提取音频?我已经读过我需要调用AudioUnitRender()才能在节点应用程序上启动渲染周期,但是在我的情况下需要如何设置呢?我已经看到了其他示例,其中从渲染回调中调用了AudioUnitRender(),但是这对我不起作用,因为我的渲染回调当前没有被调用.我是否需要设置自己的音频处理线程并定期调用AudioUnitRender()我的"节点"?

以下是我的HOST应用程序内部描述的代码.

static OSStatus MyAURenderCallback (void                        *inRefCon,
                                    AudioUnitRenderActionFlags  *ioActionFlags,
                                    const AudioTimeStamp        *inTimeStamp,
                                    UInt32                      inBusNumber,
                                    UInt32                      inNumberFrames,
                                    AudioBufferList             *ioData) 
{
     //Do something here with the audio data? 
     //This method is never being called? 
     //Do I need to puts AudioUnitRender() in here? 
}

    - (void)start
    {
        [self configureAudioSession];
        [self …
Run Code Online (Sandbox Code Playgroud)

iphone audio core-audio ipad ios

5
推荐指数
0
解决办法
899
查看次数

如何缩小价值?

我有一个变量x,它接受0到500之间的一系列值.

我想在xScaled接受范围0-1的新变量中重复此变量的值.

示例: 给出x = 292什么是相对值xScaled以及如何计算?

谢谢

math scaling

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

我是否需要将作为参数传入的NSStrings分配给自定义初始化方法?

请考虑以下两种初始化方法.

第一种方法只是将参数的值传递给它们各自的NSString属性,但第二种方法分配属性,然后使用initWithString:方法初始化它们.后一个例子中的分配是否必要?

提前致谢.

-(id)initWithTitle:(NSString *)theTitle muscleGroup:(NSString *)theMuscleGroup equipment:(NSString *)theEquipment {
    if((self = [super init])){  
        title = theTitle; 
        muscleGroup = theMuscleGroup; 
        equipment = theEquipment; 
    }
    return self; 
}

-(id)initWithTitle2:(NSString *)theTitle muscleGroup:(NSString *)theMuscleGroup equipment:(NSString *)theEquipment {
    if((self = [super init])){  
        title = [[NSString alloc] initWithString:theTitle]; 
        muscleGroup = [[NSString alloc] initWithString:theMuscleGroup]; 
        equipment = [[NSString alloc] initWithString:theEquipment];  
    }
    return self; 
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

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

滚动时UITableView无法正确更新

我正在编写一个包含2个部分的UITableView.当表首次加载时,所有单元格都显示正确的信息,但是当我开始向上和向下滚动时,单元格detailTextLabel和accessoryType正在被错误地刷新,这样一些应该只包含detailTextLabel的单元格也包含一个附件,并且应该只包含一个附件也包含一个详细的TextLabel.

在内部cellForRowAtIndexPath:我使用嵌套的switch/case语句将正确的值应用于各自的section/row中的单元格.至于我可以说这些陈述中的逻辑是正确的,那么cell更新时变量的值是否可能是正确的?

该表正确加载但滚动后的accessoryType和detailedTextLabel混淆了.

单击以链接到表格的屏幕截图.

这是我的UITableViewController子类中的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [sectionNames count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    NSArray *headingsSection = [cellTitles objectAtIndex:section];
    return [headingsSection count]; 
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return [sectionNames objectAtIndex:section];
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    self.tableView.allowsSelection = YES;
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitableview tableview

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

Xcode静态分析仪抱怨使用ARC时潜在的泄漏

我正在使用ARC和ios sdk 6.0.

我很确定我有一些内存泄漏,我无法追踪.

运行静态分析器后,我会收到有关以下两种方法的警告:

+ (id<MXURLRequest>) requestWithURL:(NSURL*)url {    
  MXASIURLRequest *request = [[MXASIURLRequest alloc] init];

  [request setUrl:url];

  return request; // STATIC ANALYSER: Potential leak of an object stored into 'request' 
}

- (id)parseBody:(NSError *)error {    
  NSString *contentType = [[_request responseHeaders] objectForKey:@"Content-Type"];

  id body = nil;

  if ([contentType hasPrefix:@"application/json"] ||
      [contentType hasPrefix:@"text/json"] ||
      [contentType hasPrefix:@"application/javascript"] ||
      [contentType hasPrefix:@"text/javascript"]) {        
    body = [NSJSONSerialization JSONObjectWithData:[_request responseData] options:NSJSONReadingMutableLeaves error:&error];
  } else if ([contentType hasPrefix:@"image/"] ||
           [contentType hasPrefix:@"audio/"] ||
           [contentType hasPrefix:@"application/octet-stream"]) {        
    body = [_request …
Run Code Online (Sandbox Code Playgroud)

memory-management objective-c ios automatic-ref-counting

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

如何在访问java ArrayList时阻止两个线程冲突?

我有两个线程都需要访问ArrayList<short[]>实例变量.

short[]当新数据到达时,一个线程将通过回调异步地将项添加到列表中:void dataChanged(short[] theData)

另一个线程将定期检查列表是否有项目,如果是,它将迭代所有项目,处理它们,并从阵列中删除它们.

如何设置它以防止两个线程之间的冲突?

这个人为的代码示例当前抛出了java.util.ConcurrentModificationException

//instance vairbales
private ArrayList<short[]> list = new ArrayList<short[]>();

//asynchronous callback happening on the thread that adds the data to the list
void dataChanged(short[] theData) {
    list.add(theData);
}

//thread that iterates over the list and processes the current data it contains
Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {

        while (true) {

            for(short[] item : list) {
                //process the data 
            }

            //clear the list to discared …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading android synchronization

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