小编Mic*_*ael的帖子

Objective-C:正确的传球方法

你怎么能在方法中传递变量?

我有一个UITabBarController.

- (void)tabBarController:(UITabBarController *)tabBarController 
        didSelectViewController:(UIViewController *)viewController {
     NSLog(@"my ns string %@", viewController.tabBarItem.title);
}
Run Code Online (Sandbox Code Playgroud)

我需要NSString变量集,以便在此事件中指定表的单元格时可以访问它.这个想法是表格内容取决于标签标题.

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

在我熟悉的其他语言中,我总是只在函数中传递变量,或者它们是类中的变量.我是Objective-C的新手,我不知道如何处理变量范围.

我读到可以通过创建一个仅用于变量的类来完成.这是正确的方法吗?建议非常感谢.

iphone scope objective-c ios

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

使用变量作为正则表达式替换参数

我一直在做一些搜索,但没有找到答案.为什么这不起作用?

    $self->{W_CONTENT} =~ /$regex/;
    print $1; #is there a value? YES
    $store{URL} =~ s/$param/$1/;
Run Code Online (Sandbox Code Playgroud)

是1美元有价值.$ param被替换,但它被替换为nothing.我很肯定1美元有价值.如果我用文本而不是"$ 1"替换它可以正常工作.请帮忙!

perl

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

需要持续表达

 unsigned char rtc_time[6] = { pThis->hoursTens, pThis->hoursUnits, pThis->minutesTens, pThis->minutesUnits, pThis->secondsTens, pThis->secondsUnits };
Run Code Online (Sandbox Code Playgroud)

不编译.我收到错误(6次):需要持续表达

每个变量都声明为unsigned char.我已经尝试过(const)而没有运气.

This is in MPLAB X IDE, C language, using Hi-Tech-PICC compiler v9.65PL1.

What is the problem?

It works when I define the variable as below, but I need to use the variables above.

 unsigned char rtc_time[6] = { 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 };
Run Code Online (Sandbox Code Playgroud)

c embedded variables mplab

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

keil错误#28表达式必须具有常量值

我正在使用Keil uVision为嵌入式项目编译此代码.

void doSomething(void)
{
    unsigned char a = 0x01;
    unsigned char b = 0x02;

    typedef struct
    {
        void *pVoid;
    } test_t;

    test_t t[] = {{&a}, {&b}};
}
Run Code Online (Sandbox Code Playgroud)

在最后一行,我收到一个错误

错误:#28:表达式必须具有常量值

我读过这是编译器不知道变量大小的问题.我不明白这意味着什么.

变量a和b是定义的类型,因此它们的指针总是相同的大小?无论它们的类型如何,这是嵌入式的,所以指针大小都相同?

它可以使var a和b静态,为什么?这是嵌入式的,我不希望连续分配内存,因此这不是解决方案.

更新:我正在使用Keil uVision 4.72.10.0和Armcc v5.03.0.76 - 我能够使用"--c99"标志让Keil编译它,如此处所示.

c

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

标签 统计

c ×2

embedded ×1

ios ×1

iphone ×1

mplab ×1

objective-c ×1

perl ×1

scope ×1

variables ×1