小编Gre*_*reg的帖子


什么时候使用KVO?

我已经阅读了很多关于KVO的文档,但我仍然对何时使用它感到困惑.

如果objA想监视某个属性objB,如下:

self.objB = [[ObjB alloc] init];
[self.objB addObserver:self
            forKeyPath:@"address"
               options:0
               context:nil];
Run Code Online (Sandbox Code Playgroud)

所以,如果objB属性发生变化,并且只能更改self,为什么不这样做:

self.objB.property = @"newValue";
[self doSomethingBasedOnNewValueOfObjBnewProperty];
Run Code Online (Sandbox Code Playgroud)

代替

- (void)observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context

{
    if(keyPath == @"address") {
        [self doSomethingBasedOnNewValueOfObjBnewProperty];
    }
}
Run Code Online (Sandbox Code Playgroud)

当与单例一起使用时可能很有用,例如self.objB = [ObjB sharedInstance],其中属性可能被其他对象更改.这是唯一的用例吗?

objective-c key-value-observing

15
推荐指数
2
解决办法
2786
查看次数

如何使用RTMPStreamPublisher发布视频时在iPhone上存储视频?

现在我正在使用RTMPStreamPublisherwowzaserver发布视频.它正在成功上传,但有人能告诉我如何在上传到服务器时将相同的视频存储在iPhone上吗?

我使用https://github.com/slavavdovichenko/MediaLibDemos,但没有太多可用的文档.如果我可以存储发送的数据,那么我的工作就会成功.

以下是他们用于上传流的方法,但我找不到在iPhone设备上存储相同视频的方法:

// ACTIONS

-(void)doConnect {
#if 0 // use ffmpeg rtmp 
    NSString *url = [NSString stringWithFormat:@"%@/%@", hostTextField.text, streamTextField.text];
    upstream = [[BroadcastStreamClient alloc] init:url  resolution:RESOLUTION_LOW];
    upstream.delegate = self;
    upstream.encoder = [MPMediaEncoder new];
    [upstream start];
    socket = [[RTMPClient alloc] init:host]
    btnConnect.title = @"Disconnect";     
    return;
#endif

#if 0 // use inside RTMPClient instance
    upstream = [[BroadcastStreamClient alloc] init:hostTextField.text resolution:RESOLUTION_LOW];
    //upstream = [[BroadcastStreamClient alloc] initOnlyAudio:hostTextField.text];
    //upstream = [[BroadcastStreamClient alloc] initOnlyVideo:hostTextField.text resolution:RESOLUTION_LOW];

#else // use outside RTMPClient instance

    if …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c rtmp ios avcapturesession

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

对字母表上的文本进行验证

任何人都使用TextBox上的AngulerJS验证.所以只输入字母.

angularjs angularjs-validation

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

用属性字符串替换UITextViews文本

我有一个UITextView,当用户输入文本时,我想动态格式化文本.语法高亮......

为此,我想用UITextView...

一切正常,期待一个问题:我从文本视图中获取文本并从中NSAttributedString获取.我对这个属性字符串进行了一些编辑,并将其设置为textView.attributedText.

每次用户输入时都会发生这种情况.所以我必须记住selectedTextRange编辑之前的attributedText事情,然后将其设置回来,以便用户可以继续在他之前输入的地方打字.唯一的问题是,一旦文本足够长就需要滚动,UITextView如果我慢慢输入,现在将开始滚动到顶部.

以下是一些示例代码:

- (void)formatTextInTextView:(UITextView *)textView
{
  NSRange selectedRange = textView.selectedRange;
  NSString *text = textView.text;

  // This will give me an attributedString with the base text-style
  NSMutableAttributedString *attributedString = [self attributedStringFromString:text];

  NSError *error = nil;
  NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"#(\\w+)" options:0 error:&error];
  NSArray *matches = [regex matchesInString:text
                                    options:0
                                      range:NSMakeRange(0, text.length)];

  for (NSTextCheckingResult *match in matches)
  {
    NSRange matchRange = [match rangeAtIndex:0];
    [attributedString addAttribute:NSForegroundColorAttributeName
                             value:[UIColor …
Run Code Online (Sandbox Code Playgroud)

uitextview nsattributedstring core-text ios

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

NSSet实现

这个问题只是出于好奇,但NSSet是如何实现的?它背后是什么数据结构以及添加和删除元素的访问时间是多少?如果我不得不猜测,我会说它是某种哈希表/字典数据结构,但在这种情况下为什么要区分NSSet和NSMutableSet?

cocoa objective-c nsset

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

CoreData上的UserInfo字典

这部分Apple核心数据文档意味着什么?

用户信息词典

托管对象模型中的许多元素 - 实体,属性和关系 - 具有关联的用户信息字典.您可以将任何您想要的信息放入用户信息字典中作为键值对.放入用户信息字典的公共信息包括实体的版本详细信息,以及谓词用于获取的属性的值.

据我所知,默认情况下实体有字典,但我无法在coredata实体或属性上找到userInfo.

attributes entities core-data userinfo ios

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

printf指定float的整数格式字符串

#include <stdio.h>

int main()
{
    float a = 5;
    printf("%d", a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

0
Run Code Online (Sandbox Code Playgroud)

为什么输出为零?

c printf casting

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

获取NSFileWrapper的路径

给定一个NSFileWrapper对象(对于文件或目录),有没有办法获得磁盘上实际文件位置的完整路径?

[fileWrapper filename] 只返回文件名,而不是路径,所以它不是我想要的.

iphone macos objective-c nsfilewrapper ios

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

NSManagedObjects中的Mutable集?

自动生成NSManagedObject属性的标准声明声明了许多关系,如下所示:

@property (nonatomic, retain) NSSet *somethings;
...
@dynamic somethings;
Run Code Online (Sandbox Code Playgroud)

将该声明更改为NSMutableSet?是否安全?CoreData组件是否仍能正常运行?

通过判断@dynamic,它似乎不关心我是否使用NSSet子类而不是一个NSSet,但我不想重写很多代码只是为了发现它不起作用.

iphone core-data objective-c ipad ios

8
推荐指数
2
解决办法
2750
查看次数