在示例代码中,我看到了这样的:
typedef enum Ename { Bob, Mary, John} EmployeeName;
Run Code Online (Sandbox Code Playgroud)
还有这个:
typedef enum {Bob, Mary, John} EmployeeName;
Run Code Online (Sandbox Code Playgroud)
还有这个:
typedef enum {Bob, Mary, John};
Run Code Online (Sandbox Code Playgroud)
但为我成功编译的是:
enum {Bob, Mary, John};
Run Code Online (Sandbox Code Playgroud)
我将该行放在@interface行上方的.h文件中,然后当我将该.h文件#import转换为另一个类的.m文件时,方法可以看到枚举.
那么,何时需要其他变种?
如果我可以将枚举命名为EmployeeNames,然后,当我键入"EmployeeNames"后跟一个"."时,如果弹出一个列表显示枚举选项是什么,那就太好了.
我有一个类歌曲,其属性为Title,Key,Artist等.没有方法.我遍历歌曲信息数据库并为每个创建一个Song对象,填充属性,然后将Song对象存储在NSArray中.
然后我想,为什么不只是有一个具有所有相同属性的结构歌曲而不是类宋.这样做会消除类文件,using类的.m文件中的#import Song行,以及需要alloc,init,release.
另一方面,我必须将struct定义放在可能需要它的每个类中.(除非有一些全局可访问的位置 - 是否存在?)此外,结构是否可以存储在NSArray中?
创建和初始化对象的两种方法之一是否更可取?
MyClass oClass = [[MyClass alloc] init];
oClass.length = 5;
oClass.text = @"Hello";
Run Code Online (Sandbox Code Playgroud)
或者使用包含大致相同代码的类方法,但如下所示:
MyClass oClass = [MyClass myClassWithLength:(int) 5 andText:(NSString *) @"Hello"];
Run Code Online (Sandbox Code Playgroud)
当我看到事情不止一种方式而且我不知道一个人比另一个人好,或者为什么时,我讨厌它!
我的浏览器恰好是一个tableViewController,它告诉我,它的属性是一个NSArray或一个NSDictionary,它保存了要加载到表中以供显示的数据.
好像我应该明确说出类似的话:
[self.tableView useData:self.MyArray];
Run Code Online (Sandbox Code Playgroud)
我想在tableViewController中有多个数组,并以编程方式在一个和另一个之间切换.
我注意到当tableViewController使用searchViewController时,你可以这样做:
if (tableView == self.searchDisplayController.searchResultsTableView) {
Run Code Online (Sandbox Code Playgroud)
我甚至能够做到这一点:
self.tableView = self.searchDisplayController.searchResultsTableView;
[self.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)
但是我无处可以找到如何将self.tableView设置回主数据源!
这段代码......
NSString * s = [[NSString alloc] initWithString:@"Hello, World"];
s = s.lowercaseString;
NSLog(@"%@", s);
Run Code Online (Sandbox Code Playgroud)
...允许使用点表示法,但是强类型.这段代码......
id s = [[NSString alloc] initWithString:@"Hello, World"];
s = [s lowercaseString];
NSLog(@"%@", s);
Run Code Online (Sandbox Code Playgroud)
...是弱类型的,需要使用方括号.
除此之外,使用一个优于另一个是否有任何优势?
我只是想知道评论是否包含在二进制文件中,或者编译器是否知道删除它们?
Foo *oFoo = [[[Foo alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
这就是我被教导如何在Objective C中编程,但CLang错误检查器抱怨从未读过初始值.但是oFoo是一个具有属性的对象.oFoo本身没有单一价值.属性值是重要的.
oFoo.PropertyA = 1;
oFoo.PropertyB = @"Hello, World."
Run Code Online (Sandbox Code Playgroud)
我应该忽略这个吗?这值得修理吗?什么是修复,看到"初始值"在我的背景下毫无意义?
我知道如何替换字符串中的文本.但那是使用键盘(ASCII)字符.在目标C中,我如何指出学位符号?另外,如何获取角色的ASCII码?
我正在使用 C#/Asp.net 创建一个网站。我想通过将一些类和属性设置为静态来最小化对象创建。但我不希望后续调用 Web 服务器时重用这些对象。我希望在处理请求后立即处理静态对象。如果在处理过程中出现新请求,我不希望新请求看到前一个请求的静态类和属性中的数据。那么,我应该使用静态吗?